首页 > 文章列表 > golang中的零值是什么?

golang中的零值是什么?

236 2024-02-10
问题内容

我在代码库中看到 ^0。

示例:

type stat struct {
  ...
  min int64
  ...
}

newStat := stat{min: ^0}

^0是什么意思?


正确答案


根据文档

^x 按位补码是 m ^ x,其中 m =“所有位设置为 1”

无符号 x 且 m = -1(对于有符号 x)

因此 ^x 反转 x 中的每个位,例如。 0101 变为 1010。这意味着^0与其他主流语言中的~0是一样的。

当使用二进制补码表示负数时(大多数编程语言都这样做) ,零的按位补码(所有位均为 1)的值为 -1。所以这是一种写法:

newStat := stat{min: -1}