4 ms·
From the Go language spec: "For signed integers, the operations +, -, *, and << may legally overflow and the resulting value exists and is deterministically de
by packetslave 13y ago
From the Go language spec:
"For signed integers, the operations +, -, *, and << may legally overflow and the resulting value exists and is deterministically defined by the signed integer representation, the operation, and its operands. No exception is raised as a result of overflow. A compiler may not optimize code under the assumption that overflow does not occur. For instance, it may not assume that x < x + 1 is always true."
func main() {
var foo int8 = 127
fmt.Println(foo + 1)
}
prints -128
- agwa 13y agoCool, thanks for the info! Looking at the spec, I see that signed integers are elsewhere defined to be represented using 2's complement, so this is completely kosher.