9.4 Go语言入门(运算符)

目录

Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。

下面是 Go 语言的基础语法讲解和代码示例。


上一篇:二、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. 逻辑运算符

逻辑运算符用于连接布尔表达式。

  • && :逻辑与(AND)
  • || :逻辑或(OR)
  • ! :逻辑非(NOT)
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
    fmt.Println("!b:", !b)         // 输出:true
}

4. 位运算符

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

  • & :按位与
  • | :按位或
  • ^ :按位异或
  • &^ :按位清除(AND NOT)
  • << :左移
  • >> :右移
package main

import "fmt"

func main() {
    a := 10       // 二进制:1010
    b := 3        // 二进制:0011

    fmt.Println("a & b:", a & b)   // 输出:2  (二进制:0010)
    fmt.Println("a | b:", a | b)   // 输出:11 (二进制:1011)
    fmt.Println("a ^ b:", a ^ b)   // 输出:9  (二进制:1001)
    fmt.Println("a &^ b:", a &^ b) // 输出:8  (二进制:1000)

    fmt.Println("a << 1:", a << 1) // 输出:20 (二进制:10100)
    fmt.Println("a >> 1:", a >> 1) // 输出:5  (二进制:0101)
}

5. 赋值运算符

赋值运算符用于给变量赋值。

  • = :赋值
  • += :加法赋值
  • -= :减法赋值
  • *= :乘法赋值
  • /= :除法赋值
  • %= :取模赋值
  • <<= :左移赋值
  • >>= :右移赋值
  • &= :按位与赋值
  • |= :按位或赋值
  • ^= :按位异或赋值
  • &^= :按位清除赋值
package main

import "fmt"

func main() {
    var a int = 10

    a += 5   // 相当于 a = a + 5
    fmt.Println("a += 5:", a) // 输出:15

    a -= 3   // 相当于 a = a - 3
    fmt.Println("a -= 3:", a) // 输出:12

    a *= 2   // 相当于 a = a * 2
    fmt.Println("a *= 2:", a) // 输出:24

    a /= 4   // 相当于 a = a / 4
    fmt.Println("a /= 4:", a) // 输出:6

    a %= 3   // 相当于 a = a % 3
    fmt.Println("a %= 3:", a) // 输出:0

    a = 8
    a <<= 1  // 相当于 a = a << 1
    fmt.Println("a <<= 1:", a) // 输出:16

    a >>= 2  // 相当于 a = a >> 2
    fmt.Println("a >>= 2:", a) // 输出:4

    a &= 3   // 相当于 a = a & 3
    fmt.Println("a &= 3:", a) // 输出:0

    a |= 2   // 相当于 a = a | 2
    fmt.Println("a |= 2:", a) // 输出:2

    a ^= 3   // 相当于 a = a ^ 3
    fmt.Println("a ^= 3:", a) // 输出:1

    a &^= 2 // 相当于 a = a &^ 2
    fmt.Println("a &^= 2:", a) // 输出:1
}

6. 其他运算符

赋值运算符用于给变量赋值。

  • & :取地址
  • * :指针运算符
package main

import "fmt"

func main() {
    a := 10
    p := &a         // 取地址
    fmt.Println("Address of a:", p)
    fmt.Println("Value of *p:", *p) // 解引用
}

7. 运算符优先级

运算符的优先级决定了它们在表达式中计算的顺序。高优先级的运算符在低优先级的运算符之前执行。运算符的优先级如下,从高到低:

  1. * / % << >> & &^
  2. + - | ^
  3. == != < <= > >=
  4. &&
  5. ||

可以使用括号 () 来显式地指定计算顺序。

package main

import "fmt"

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

    result := a + b * c    // 等同于 a + (b * c)
    fmt.Println(result)    // 输出:16

    result = (a + b) * c
    fmt.Println(result)    // 输出:26
}

通过理解和掌握这些运算符及其使用方法,可以有效地编写和调试 Go 语言代码。


下一篇:四、Go语言入门(条件语句和循环语句)


在这里插入图片描述

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ibun.song

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值