在golang中的数字类型之间进行转换

时间:2012-12-13 00:55:40

标签: casting go numeric

有人可以告诉我,如果支持自动转换数字类型。现在我必须手动将我所有计算的结果转换为int或int64,并跟踪我正在使用的数字类型。

3 个答案:

答案 0 :(得分:13)

Go不会自动为您转换数字类型。

来自语言规范:

  

混合使用不同的数字类型时需要转换   表达或作业。例如,int32和int不是   即使它们在特定的尺寸上可能具有相同的尺寸,也是相同的类型   架构。

答案 1 :(得分:4)

Go不支持数字类型的隐式类型转换。

参考spec。我认为这是出于安全和可预测性的原因。我发现的另一件事是有点奇怪/有趣的是你甚至不能隐式地从int转换为int32,这是奇怪的,因为两者具有相同的大小。

type conversion error

答案 2 :(得分:0)

您必须手动转换类型,例如

var b byte = byte(x % 256);