数据类型转换, 即将一种数据类型转换成另一种数据类型
go语言不同于其它类c语言, go语言中的类型转换都必须要显示转换
即不存在默认数据类型转换, 如:
var a int = 1; var b float32 = a 这是错的
go语言数据转换基本语法: 数据类型(表达式),
如: var a int = 1; var b float32 = float32(a)
浮点型与整型转换:
func main() {
var a float32 = 1.9999
var b = int(a) // 1, 小数部分被省略掉
var c = float64(b)
fmt.Println(c) // 1
}
go中数据类型可以从小到大转换, 也可以从大到小转换
func main() {
var a int16 = 10
var b int32 = int32(a) // 小到大
var c int16 = int16(b) // 大到小
fmt.Println(c)
fmt.Printf("%T", a) // int16
}
数据类型转换后, 之前的变量类型不会发生变化, 如上a的类型还是int16
在转换过程中可能会发生数据错误:
func main() {
var a int = 1000
var b int8 = int8(a) // int8的范围是-128~127
fmt.Println(b) // 结果为-24, 这并不是我们希望的结果
}
在转换时, 应当注意转换后的数据是否能完全容纳