在“21 世纪 C”中,Ben Klemens 描述了 C 如何自动将有符号数转换为无符号数,例如在比较表达式中。 Go 是否具有相同的危险行为,或者 Go 的处理方式不同?
最佳答案
Go 中没有隐式转换。为了对两个不同类型的值进行比较或运算,您必须进行手动和显式类型转换。
a := 3 // numerical constant 3 defaults to int
b := uint(2)
c := a < b // compiler error
d := a < int(b) // OK
关于c - Go 是否修复或共享 C 的危险隐式 -> 无符号转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40820275/