美文网首页
Go_016_数据类型之间转换

Go_016_数据类型之间转换

作者: 为宇绸缪 | 来源:发表于2023-05-08 22:17 被阅读0次

    类型转换
    Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用

    (1) 整型之间的转换 int8 int16 int32
    x与y如果类型不同,则无法直接相加,需要进行类型转换,比如 int8(x), int16(y), int32(z)

    package main
    
    import "fmt"
    
    func main() {
        var x int8 = 10
        var y int16 = 10
        fmt.Println(x + int8(y))
    }
    

    (2) 字符串与整型之间的转换: strconv.Itoa 和 strconv.Atoi
    Itoa 把数字转换成字符串 Atoi 把字符串转换为数字
    在转换的时候会返回错误信息,不想要的话使用 _ 进行匿名接收

    package main
    
    import (
        "fmt"
        "reflect"
        "strconv"
    )
    
    func main() {
    
        var ageStr = "32"
        var ageInt, err = strconv.Atoi(ageStr)
        fmt.Println("err: ", err)
        fmt.Println(ageInt, reflect.TypeOf(ageInt))
    
        price := 100
        var priceStr = strconv.Itoa(price)
        fmt.Println(priceStr, reflect.TypeOf(priceStr))
    
    }
    
    /*
    err:  <nil>
    32 int
    100 string
    */
    

    (3) 将数字字符串转换为整型:strconv Parse系列函数
    strconv.ParseInt(字符串, 进制, 比特位)
    比特位是按照有符号的来算,控制转换的范围
    进制是设置十进制、二进制、十六进制等

    将字符串转换为浮点型
    无论自己设置的精度是多少,最后返回的一定是float64。参数使用64即可

    将字符串转换为布尔值
    返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE,否则返回错误

    package main
    
    import (
        "fmt"
        "reflect"
        "strconv"
    )
    
    func main() {
    
        var result1, _ = strconv.ParseInt("123", 10, 8)
        fmt.Println(result1, reflect.TypeOf(result1))
    
        var result2, _ = strconv.ParseFloat("3.1415", 64)
        fmt.Println(result2, reflect.TypeOf(result2))
    
        var result3, _ = strconv.ParseBool("0")
        fmt.Println(result3)
    }
    
    /*
    123 int64
    3.1415 float64
    false
    */
    

    相关文章

      网友评论

          本文标题:Go_016_数据类型之间转换

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