Go Operators:

Operators are special symbols or keywords in Go used to perform operations on variables and values. Let's explore the different categories of operators available in Go.

1. Arithmetic Operators

Used to perform mathematical calculations:

go
a := 10
b := 3
fmt.Println(a + b) // Addition
fmt.Println(a - b) // Subtraction
fmt.Println(a * b) // Multiplication
fmt.Println(a / b) // Division
fmt.Println(a % b) // Modulus

2. Comparison Operators

Used to compare two values and return a boolean result:

go
a := 5
b := 10
fmt.Println(a == b) // false
fmt.Println(a != b) // true
fmt.Println(a < b)  // true
fmt.Println(a > b)  // false
fmt.Println(a <= b) // true
fmt.Println(a >= b) // false

3. Logical Operators

Used to combine multiple conditions:

go
x := true
y := false
fmt.Println(x && y) // false
fmt.Println(x || y) // true
fmt.Println(!x)     // false

4. Bitwise Operators

Operate at the bit level:

go
a := 5  // 0101
b := 3  // 0011
fmt.Println(a & b)  // 1 (0001)
fmt.Println(a | b)  // 7 (0111)
fmt.Println(a ^ b)  // 6 (0110)
fmt.Println(a << 1) // 10 (1010)
fmt.Println(a >> 1) // 2 (0010)

5. Assignment Operators

Used to assign and update values:

go
a := 10
a += 5  // a = a + 5
fmt.Println(a)
a -= 3  // a = a - 3
fmt.Println(a)
a *= 2  // a = a * 2
fmt.Println(a)
a /= 4  // a = a / 4
fmt.Println(a)
a %= 3  // a = a % 3
fmt.Println(a)

6. Misc Operators

Other useful operators:

go
var ptr *int
x := 42
ptr = &x
fmt.Println(ptr)  // memory address
fmt.Println(*ptr) // dereference