Go 运算符


在 Go 语言中,运算符用于执行各种操作。Go 支持以下几类运算符:

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

1. 算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法和除法。

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

示例

package main

import "fmt"

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

    fmt.Println("a + b =", a + b)
    fmt.Println("a - b =", a - b)
    fmt.Println("a * b =", a * b)
    fmt.Println("a / b =", a / b)
    fmt.Println("a % b =", a % b)

    a++
    fmt.Println("a++ =", a)

    b--
    fmt.Println("b-- =", b)
}

2. 关系运算符

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

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

示例

package main

import "fmt"

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

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

3. 逻辑运算符

逻辑运算符用于连接两个或多个条件,结果是布尔值。

运算符 描述 示例
&& 逻辑与 a && b
` ` 逻辑或 `a b`
! 逻辑非 !a

示例

package main

import "fmt"

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

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

4. 位运算符

位运算符用于按位操作数。

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

示例

package main

import "fmt"

func main() {
    a := 60  // 60 = 0011 1100
    b := 13  // 13 = 0000 1101

    fmt.Println("a & b =", a & b)   // 12 = 0000 1100
    fmt.Println("a | b =", a | b)   // 61 = 0011 1101
    fmt.Println("a ^ b =", a ^ b)   // 49 = 0011 0001
    fmt.Println("a << 2 =", a << 2) // 240 = 1111 0000
    fmt.Println("a >> 2 =", a >> 2) // 15 = 0000 1111
}

5. 赋值运算符

赋值运算符用于将右侧的值赋给左侧的变量。

运算符 描述 示例
= 简单赋值 a = b
+= 加后赋值 a += b
-= 减后赋值 a -= b
*= 乘后赋值 a *= b
/= 除后赋值 a /= b
%= 取余后赋值 a %= b
<<= 左移后赋值 a <<= b
>>= 右移后赋值 a >>= b
&= 位与后赋值 a &= b
` =` 位或后赋值 `a = b`
^= 位异或后赋值 a ^= b

示例

package main

import "fmt"

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

    a += b  // a = a + b
    fmt.Println("a += b:", a)

    a -= b  // a = a - b
    fmt.Println("a -= b:", a)

    a *= b  // a = a * b
    fmt.Println("a *= b:", a)

    a /= b  // a = a / b
    fmt.Println("a /= b:", a)

    a %= b  // a = a % b
    fmt.Println("a %= b:", a)
}

6. 其他运算符

Go 语言中还有一些特殊的运算符,比如指针运算符和复合运算符。

指针运算符

运算符 描述 示例
& 取地址 &a
* 指针解引用 *p

示例

package main

import "fmt"

func main() {
    a := 10
    p := &a  // 取变量 a 的地址

    fmt.Println("a:", a)
    fmt.Println("p:", p)
    fmt.Println("*p:", *p)  // 解引用,获取 p 指向的值

    *p = 20  // 通过指针修改 a 的值
    fmt.Println("a:", a)
}

总结

Go 语言提供了丰富的运算符,可以进行各种操作。理解和掌握这些运算符的用法,是编写高效 Go 代码的基础。通过上述示例,可以对 Go 语言中的各类运算符有一个全面的了解,并能在实际编程中灵活运用。


原文链接:codingdict.net