func main() {
var a uint8 = math.MaxUint8
fmt.Println(a)
fmt.Println(a + a)
}
// 结果居然是 254 ,和溢出的计算方法一样,去掉了字节高位 但是为什么呢 不符合大众的预期啊 感谢感谢
func main() {
var a uint8 = math.MaxUint8
fmt.Println(a)
fmt.Println(a + a)
}
// 结果居然是 254 ,和溢出的计算方法一样,去掉了字节高位 但是为什么呢 不符合大众的预期啊 感谢感谢
Java运算时有数据类型自动提升这么一回事,go没有所谓的数据类型自动提升,是数字类型但不同的数据类型也不能进行运算, 比如: uint8 + uint16 不能编译。而Java可以 short + int