大多数编程语言使用~来表示一元位非操作。相比之下,Go使用^:
~
^
fmt.Println(^1) // Prints -2
因为对于无符号x,^x等价于将m设置为“所有位都为1”的m ^ x,对于有符号x,m = -1。规范中有说明。
这类似于-x等于0-x。