Go|数据类型转换

Go|数据类型转换

在必要以及可行的情况下,一个类型的值可以被转换成另一种类型的值。由于Go语言不存在隐式类型的转换,因此所有的类型转换都必须是显式的声明

valueOfTypeB = typeB(valueOfTypeA)

类型B的值 = 类型B(类型A的值)

package main

import "fmt"

// 类型转换
// 转换后的变量 := 要转换的类型(转换的变量)
// 整型不能转换为布尔型 bool
func main() {
    a := 3    //int
    b := 3.14 //float64

    //需求:将a转换为float64类型
    c := float64(a) //强制类型转换
    d := int(b)     //强制类型转换

    //打印数据类型以及值
    fmt.Printf("a的类型:%T,值:%v\n", a, a)
    fmt.Printf("b的类型:%T,值:%v\n", b, b)
    fmt.Printf("c的类型:%T,值:%v\n", c, c)
    fmt.Printf("d的类型:%T,值:%v\n", d, d)

    //
}
运行结果
a的类型:int,值:3
b的类型:float64,值:3.14
c的类型:float64,值:3
d的类型:int,值:3

类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值范围较大的类型(将int16转换int32).当从一个取值范围较大的类型转换到取值范围较小的类型时(将int32转换为int16 或将float32转为int),会发生精度丢失(截断)的情况。

无标签
评论区
头像
文章目录