通过前面几篇教程,已经陆续介绍完了 Go 语言中的基本数据类型,分别是布尔类型、整型、浮点型、复数类型、字符串和字符类型,此外,Go 语言还支持这些基本数据类型之间的转化,不过由于 Go 是强类型语言,所以不支持动态语言那种自动转化,而是要对变量进行强制类型转化。
下面,我们来看看在 Go 语言中如何实现不同数据类型之间的强制转化。
数值类型之间的转化
整型之间的转化
关于数值类型之间的转化,我们前面在介绍运算符的时候已经提到过,在进行类型转化时只需要调用要转化的数据类型对应的函数即可:
v1 := uint(16) // 初始化 v1 类型为 unit
v2 := int8(v1) // 将 v1 转化为 int8 类型并赋值给 v2
v3 := uint16(v2) // 将 v2 转化为 uint16 类型并赋值给 v3
看起来很简单,不过需要注意,在有符号与无符号以及高位数字向低位数字转化时,需要注意数字的溢出和截断。
比如我们看这个例子:
v1 := uint(-255)
由于 uint
是无符号整型,无符号数字不包含负数&#x