为什么 Go 使用 ^ 而不是 ~ 作为一元按位非?

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

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

为什么 Go 的设计师决定在这里打破常规?


慕姐4208626
浏览 166回答 1
1回答

神不在的星期二

因为 ^x 等价于 m ^ x ,其中 m = "所有位设置为 1" 对于无符号 x 和 m = -1 对于有符号 x。在规范中是这么说的。它类似于 -x 是 0 - x
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go