当您转换为较小的整数时会发生什么?

Dav*_*nan -1 go

假设你有一个int64价值。如果将该值转换为int32. 它如何影响值的符号?它等同于使用模数运算符吗?

Cer*_*món 5

您指的是转换,而不是演员表。规范的相关部分说:

整数类型之间转换时,如果值为有符号整数,则符号扩展为隐式无限精度;否则它是零扩展。然后将其截断以适应结果类型的大小。例如,如果 v := uint16(0x10F0),则 uint32(int8(v)) == 0xFFFFFFF0。转换总是产生一个有效值;没有溢出的迹象。

int64int32截断的转换。截断会影响值的符号。

由于隐式符号扩展,从int32到的转换int64保留了符号。