为什么Go使用^而不是~来表示一元位取反?

4

大多数编程语言使用~来表示一元位非操作。相比之下,Go使用^

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

为什么Go的设计者决定在这里打破常规?
1个回答

11

因为对于无符号x,^x等价于将m设置为“所有位都为1”的m ^ x,对于有符号x,m = -1。规范中有说明

这类似于-x等于0-x。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接