一、GO语言类型转换概述
Golang 和java / c 不同,Go 在不同类型的变量之间赋值时需要显式转换。也就是说Golang中数据类型不能自动转换。
二、基本语法
表达式 T(v)
说明:
将值 v 转换为类型 T
T: 就是数据类型,比如 int32,int64,float32 等等
v: 就是需要转换的变量
三、快速入门案例
var n1 int = 90
var n2 float64 = float64(n1)
n2 = n2 + 1.5
var n3 int32 = int32(n2) //当将一个float类型转成 int时,是直接去掉小数点后的部分
fmt.Printf("n1 type=%T val=%v n2 type=%T val=%v n3 type=%T val=%v\n",
n1, n1, n2, n2, n3, n3)
四、基本数据类型转换使用细节和注意事项
1、Go中,数据类型的转换可以是从 表示范围小–>表示范围大,也可以 范围大—>范围小
var num1 int16 = 10
var num2 int32 = 20
var num3 int64 = 30
num1 = int16(num2) // int32-->int16
num3 = int64(num2) // int32-->int64
fmt.Println(num1, num2, num3)
2、被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
3、在转换中,比如将 int64 转成 int8 【-128—127】 ,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样。