运算符

在 Go 语言中,运算符的使用也很直观且类似于其他语言。以下是 Go 语言中常见的运算符及其示例代码:

1. 算术运算符

算术运算符用于执行基本的数学运算。

  • 加法 (+)
  • 减法 (-)
  • 乘法 (*)
  • 除法 (/)
  • 取余 (%)

示例代码:

package main

import "fmt"

func main() {
    a := 10
    b := 3

    fmt.Println("a + b =", a + b)   // 13
    fmt.Println("a - b =", a - b)   // 7
    fmt.Println("a * b =", a * b)   // 30
    fmt.Println("a / b =", a / b)   // 3
    fmt.Println("a % b =", a % b)   // 1
}

2. 关系运算符

关系运算符用于比较两个值,结果是布尔值。

  • 等于 (==)
  • 不等于 (!=)
  • 大于 (>)
  • 小于 (<)
  • 大于等于 (>=)
  • 小于等于 (<=)

示例代码:

package main

import "fmt"

func main() {
    a := 10
    b := 20

    fmt.Println("a == b =", a == b)   // false
    fmt.Println("a != b =", a != b)   // true
    fmt.Println("a > b =", a > b)     // false
    fmt.Println("a < b =", a < b)     // true
    fmt.Println("a >= b =", a >= b)   // false
    fmt.Println("a <= b =", a <= b)   // true
}

3. 逻辑运算符

逻辑运算符用于布尔值的逻辑操作。

  • 与 (&&)
  • 或 (||)
  • 非 (!)

示例代码:

package main

import "fmt"

func main() {
    a := true
    b := false

    fmt.Println("a && b =", a && b) // false
    fmt.Println("a || b =", a || b) // true
    fmt.Println("!a =", !a)         // false
}

4. 赋值运算符

赋值运算符用于给变量赋值,或对变量进行计算并赋值。

  • 赋值 (=)
  • 加赋值 (+=)
  • 减赋值 (-=)
  • 乘赋值 (*=)
  • 除赋值 (/=)
  • 取余赋值 (%=)

示例代码:

package main

import "fmt"

func main() {
    a := 10
    a += 5
    fmt.Println("a += 5 =>", a) // 15

    a -= 3
    fmt.Println("a -= 3 =>", a) // 12

    a *= 2
    fmt.Println("a *= 2 =>", a) // 24

    a /= 4
    fmt.Println("a /= 4 =>", a) // 6

    a %= 5
    fmt.Println("a %= 5 =>", a) // 1
}

5. 位运算符

位运算符用于对整数的位进行操作。

  • 按位与 (&)
  • 按位或 (|)
  • 按位异或 (^)
  • 按位取反 (~)
  • 左移 (<<)
  • 右移 (>>)

示例代码:

package main

import "fmt"

func main() {
    a := 5    // 0101 in binary
    b := 3    // 0011 in binary

    fmt.Println("a & b =", a & b) // 0001 (1 in decimal)
    fmt.Println("a | b =", a | b) // 0111 (7 in decimal)
    fmt.Println("a ^ b =", a ^ b) // 0110 (6 in decimal)
    fmt.Println("~a =", ^a)       // 1010 (inverted bits of 5)
    fmt.Println("a << 1 =", a << 1) // 1010 (10 in decimal)
    fmt.Println("a >> 1 =", a >> 1) // 0010 (2 in decimal)
}

6. 条件运算符(Go 不直接支持三元运算符)

Go 语言没有直接的条件运算符(如 ? :),但可以使用 if 语句来实现类似的功能。

示例代码:

package main

import "fmt"

func main() {
    a := 10
    b := 20
    max := a

    if b > a {
        max = b
    }

    fmt.Println("Max =", max) // 20
}

7. 自增和自减运算符

用于将变量的值增加或减少 1。

  • 自增 (++)
  • 自减 (--)

示例代码:

package main

import "fmt"

func main() {
    a := 10
    a++
    fmt.Println("a++ =", a) // 11

    a--
    fmt.Println("a-- =", a) // 10
}

总结

运算符在 Go 语言中用于执行各种基本操作,如数学计算、比较、逻辑判断等。熟练掌握这些运算符可以帮助你编写高效且易于理解的代码。