美文网首页
go的数据类型转换

go的数据类型转换

作者: 魔法时刻 | 来源:发表于2019-06-26 14:20 被阅读0次
package main

import (
    "fmt"
    "unsafe"
)

func main() {
    // go 在不同数据类型之间需要显示转化 不能自动转换
    var i int32 = 100
    n1 := float32(i)
    fmt.Println(n1)
    fmt.Printf("n1的类型 %T    n1 占用的字节 %d\n", n1, unsafe.Sizeof(n1))
    fmt.Printf("i的类型 %T i 占用的字节 %d\n", i, unsafe.Sizeof(i))

    // T(v)将值 v 转换成类型 T
    // T 就是数据类型 int32 float64
    // v 就是需要转换的变量

    //被转换的是变量存储的数据,变量本身并无变化
}

基本数据类型转string

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var num1 uint8 = 99
    var num2 float32 = 123.456
    var b  = true
    var myChar byte = 'h'
    var str string

    //第一种转换方式
    str = fmt.Sprintf("%d", num1)
    fmt.Printf("str type is %T str = %q\n", str, str)

    str = fmt.Sprintf("%f", num2)
    fmt.Printf("str type is %T str = %q\n", str, str)

    str = fmt.Sprintf("%t", b)
    fmt.Printf("str type is %T str = %q\n", str, str)

    str = fmt.Sprintf("%c", myChar)
    fmt.Printf("str type is %T str = %q\n", str, str)

    //第二种转换方式 strconv 不推荐 局限性大
    var num3 uint8 = 99
    //var num4 float32 = 123.456
    var b2  = true

    str = strconv.FormatUint(uint64(num3),10)
    fmt.Printf("str type is %T str = %q\n", str, str)

    //str = strconv.FormatFloat(num4,'f',5,32)  // cannot use num4 (type float32) as type float64 in argument to strconv.FormatFloat
    fmt.Printf("str type is %T str = %q\n", str, str)

    str = strconv.FormatBool(b2)
    fmt.Printf("str type is %T str = %q\n", str, str)

    //other Itoa
    var num5 int  = 789
    str = strconv.Itoa(num5)
    fmt.Printf("str type is %T str = %q\n", str, str)

}

string 转基本数据类型

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var str = "true"
    var b bool
    b, _ = strconv.ParseBool(str)
    fmt.Printf("b type is %T b = %v\n", b, b)

    var str2 = "3699"
    var n1 int64
    n1, _ = strconv.ParseInt(str2, 10, 64)
    fmt.Printf("b type is %T b = %v\n", n1, n1)

    var str3 = "113.457"
    var f1 float64
    f1, _ = strconv.ParseFloat(str3, 64)
    fmt.Printf("b type is %T b = %v\n", f1, f1)

}

要确保string类型转换成有效的数据,否则转变为默认值

相关文章

  • Go语言学习笔记-基本程序结构-数据类型

    数据类型 Go语言不支持隐式数据类型转换 别名和原有类型也不能进行隐式类型转换 类型的预定义值 math.MaxI...

  • Go语言int显性转string类型

    如果想要转换数据类型,需要用到go语言strconv package[http://golang.org/pkg/...

  • go的数据类型转换

    基本数据类型转string string 转基本数据类型 要确保string类型转换成有效的数据,否则转变为默认值

  • Go | 基本数据类型的相互转换

    基本数据类型的相互转换 Go在不同类型的变量之间赋值时需要显示转换,不能自动转换 基本语法 表达式 T(v): 将...

  • Go语言类型转换

    类型转换用于将一种数据类型的变量转换为另外一种类型的变量。 Go 语言类型转换基本格式如下: type_name(...

  • 04-Go语言常量和变量

    Go数据类型 C语言的数据类型image GO语言数据类型image GO数据类型占用的内存空间image 注意点...

  • 02-Go语言常量和变量

    Go语言的数据类型 C语言的数据类型 Go语言的数据类型 Go语言各数据类型占用内存空间 Go语言中也可以使用si...

  • JAVA基础第四天

    JAVA数据类型---布尔类型; 数据类型转换自动数据类型转换 强制数据类型转换

  • 03 Go数据类型转换

    一、数值之间的装换 二、数值转换为字符串 三、字符串转为数值

  • JavaScript基础03- 数据类型转换

    数据类型转换 所谓的数据类型转换,就是将一种数据类型转换为另一种数据类型,所以,数据类型转换包括,转换为字符串类型...

网友评论

      本文标题:go的数据类型转换

      本文链接:https://www.haomeiwen.com/subject/xxfccctx.html