运算符是程序中用于执行各种操作的符号,它们能够进行数学计算、逻辑判断、位操作等。Go 语言支持各种常见的运算符,包括算术运算符、关系运算符、逻辑运算符等。


📖 目录

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 赋值运算符
  5. 位运算符
  6. 其他运算符
  7. 参考资料

1. 算术运算符

算术运算符用于执行数学运算,Go 语言提供了基本的算术运算符来进行加、减、乘、除等操作。

运算符描述示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余(模)a % b

示例:

package main

import "fmt"

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

    fmt.Println(a + b) // 输出: 13
    fmt.Println(a - b) // 输出: 7
    fmt.Println(a * b) // 输出: 30
    fmt.Println(a / b) // 输出: 3
    fmt.Println(a % b) // 输出: 1
}


2. 关系运算符

关系运算符用于比较两个值,结果为布尔值 truefalse。这些运算符用于判断关系,例如大于、小于等。

运算符描述示例
==等于a == b
!=不等于a != b
>大于a > b
<小于a < b
>=大于等于a >= b
<=小于等于a <= b

示例:

package main

import "fmt"

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

    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. 逻辑运算符

逻辑运算符用于连接多个布尔表达式,常用于条件判断。

运算符描述示例
&&逻辑与(AND)a && b
``
!逻辑非(NOT)!a

示例:

package main

import "fmt"

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

    fmt.Println(a && b) // 输出: false
    fmt.Println(a || b) // 输出: true
    fmt.Println(!a)     // 输出: false
}


4. 赋值运算符

赋值运算符用于将值赋给变量。在 Go 语言中,除了基本的赋值运算符,还支持多种复合赋值运算符。

运算符描述示例
=赋值a = b
+=加法赋值a += b
-=减法赋值a -= b
*=乘法赋值a *= b
/=除法赋值a /= b
%=取余赋值a %= b

示例:

package main

import "fmt"

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

    a += b // a = a + b
    fmt.Println(a) // 输出: 13

    a -= b // a = a - b
    fmt.Println(a) // 输出: 10

    a *= b // a = a * b
    fmt.Println(a) // 输出: 30

    a /= b // a = a / b
    fmt.Println(a) // 输出: 10

    a %= b // a = a % b
    fmt.Println(a) // 输出: 1
}


5. 位运算符

位运算符用于对整数的二进制位进行操作。Go 语言支持基本的位运算符,包括与、或、异或、左移和右移。

运算符描述示例
&位与a & b
``位或
^位异或a ^ b
<<左移a << b
>>右移a >> b

示例:

package main

import "fmt"

func main() {
    a, b := 5, 3 // 5: 101, 3: 011

    fmt.Println(a & b)  // 输出: 1  (101 & 011 = 001)
    fmt.Println(a | b)  // 输出: 7  (101 | 011 = 111)
    fmt.Println(a ^ b)  // 输出: 6  (101 ^ 011 = 110)
    fmt.Println(a << 1) // 输出: 10 (5 左移 1 位 -> 1010)
    fmt.Println(a >> 1) // 输出: 2  (5 右移 1 位 -> 010)
}


6. 其他运算符

除了上面介绍的基本运算符,Go 语言还提供了一些其他的运算符,如增量与减量运算符、选择运算符等。

6.1 增量和减量运算符

Go 不支持像 ++-- 运算符那样的前缀或后缀操作,增量和减量运算符仅在独立语句中有效。

运算符描述示例
++自增a++
--自减a--

示例:

package main

import "fmt"

func main() {
    a := 5

    a++ // 自增
    fmt.Println(a) // 输出: 6

    a-- // 自减
    fmt.Println(a) // 输出: 5
}

6.2 空白标识符(_

空白标识符用于忽略某个返回值或变量。它常用于忽略函数的返回值,避免编译器报错。

示例:

package main

import "fmt"

func getData() (int, int) {
    return 1, 2
}

func main() {
    _, b := getData() // 忽略第一个返回值
    fmt.Println(b)    // 输出: 2
}


7. 参考资料


Go 语言的运算符涵盖了数学计算、逻辑判断、位操作等多个方面。掌握这些运算符能够帮助开发者在编写 Go 程序时高效地处理各种计算和逻辑问题。