为什么Go使用^而不是〜为一元按位而不是?

时间:2016-03-25 02:15:34

标签: go syntax operators conventions

大多数编程语言使用~来表示一元按位非操作。相反,使用^

fmt.Println(^1)  // Prints -2

为什么Go设计师决定在这里打破惯例?

1 个答案:

答案 0 :(得分:7)

因为^ x等于m ^ x,其中m =“对于无符号x,所有位设置为1”,对于带符号x,m = -1。 Says so in the spec

它类似于-x是0 - x