Domanda

I am seeing ^0 in the code base.

Example:

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

newStat := stat{min: ^0}

What does ^0 mean?

È stato utile?

Soluzione

According to the docs:

^x bitwise complement is m ^ x with m = "all bits set to 1" for

unsigned x and m = -1 for signed x

It means that ^0 is the same as ~0 in other mainstream languages.

On a two's complement (which most of the programming languages adopt) the value of the complement of zero is -1 (on an signed data type). So this is a way to write:

newStat := stat{min: -1}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top