【问题标题】:Casting between number types in golanggolang中数字类型之间的转换
【发布时间】:2012-12-13 00:55:40
【问题描述】:

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

【问题讨论】:

标签: casting go numeric


【解决方案1】:

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

来自语言规范:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    【解决方案3】:

    您必须手动在类型之间进行转换,例如

    var b byte = byte(x % 256);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2020-06-11
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多