有人可以告诉我,如果支持自动转换数字类型。现在我必须手动将我所有计算的结果转换为int或int64,并跟踪我正在使用的数字类型。
答案 0 :(得分:13)
Go不会自动为您转换数字类型。
来自语言规范:
混合使用不同的数字类型时需要转换 表达或作业。例如,int32和int不是 即使它们在特定的尺寸上可能具有相同的尺寸,也是相同的类型 架构。
答案 1 :(得分:4)
Go不支持数字类型的隐式类型转换。
参考spec。我认为这是出于安全和可预测性的原因。我发现的另一件事是有点奇怪/有趣的是你甚至不能隐式地从int转换为int32,这是奇怪的,因为两者具有相同的大小。
答案 2 :(得分:0)
您必须手动转换类型,例如
var b byte = byte(x % 256);