Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is ^0 in golang?

I am seeing ^0 in the code base.

Example:

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

newStat := stat{min: ^0}

What does ^0 mean?

like image 941
samol Avatar asked Oct 03 '13 22:10

samol


People also ask

What is zero value of struct Golang?

A zero value struct is simply a struct variable where each key's value is set to their respective zero value. This article is part of the Structs in Go series. We can create a zero value struct using the var statement to initialize our struct variable.

What is the zero value?

Zero is a number which quantifies a count or an amount of null size. In most cultures, 0 was identified before the idea of negative things (i.e., quantities less than zero) was accepted. As a value or a number, zero is not the same as the digit zero, used in numeral systems with positional notation.

What is the zero value for string?

The zero value is: 0 for numeric types, false for the boolean type, and. "" (the empty string) for strings.


1 Answers

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}
like image 139
Murilo Vasconcelos Avatar answered Oct 01 '22 01:10

Murilo Vasconcelos