18. Go 语言中的运算符

AI 概述
1. Go 语言的算数运算符2. Go 语言的关系运算符3. Go 语言的逻辑运算符4. Go 语言的位运算符5.Go 语言的赋值运算符6. 优先级7. 小结 本文主要介绍 Go 语言中的各种运算符的使用以及其优先级的比较。Go 语言中运算符分为下面几大类: 算数运算符; 关系运算符; 逻辑运算符; 位运算符; 复制运算符。 ...
目录
文章目录隐藏
  1. 1. Go 语言的算数运算符
  2. 2. Go 语言的关系运算符
  3. 3. Go 语言的逻辑运算符
  4. 4. Go 语言的位运算符
  5. 5.Go 语言的赋值运算符
  6. 6. 优先级
  7. 7. 小结

本文主要介绍 Go 语言中的各种运算符的使用以及其优先级的比较。Go 语言中运算符分为下面几大类:

  • 算数运算符;
  • 关系运算符;
  • 逻辑运算符;
  • 位运算符;
  • 复制运算符。

下面我们就来一一看下这几种运算符如何使用。

1. Go 语言的算数运算符

Go 语言中的算数运算符如表所示:

运算符 结合性 描述
+ 从左到右 运算符左边的实体加上右边的实体
从左到右 运算符左边的实体减去右边的实体
* 从左到右 运算符左边的实体乘以右边的实体
/ 从左到右 运算符左边的实体除以右边的实体
% 从左到右 运算符左边的实体对右边的实体取余
++ 从右到左 左边的变量使用后自加一
从右到左 左边的变量使用后自减一

代码示例:

package main

import (
    "fmt"
)

func main() {
    var a = -7
    var b = 4

    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)
}

效果如下:

Go 语言的算数运算符

2. Go 语言的关系运算符

Go 语言中的关系运算符如表所示:

运算符 结合性 描述
== 从左到右 左右两边实体相等运算结果为 true,否则为 false
!= 从左到右 左右两边实体不等运算结果为 true,否则为 false
>= 从左到右 左边的实体大于或等于右边运算结果为 true,否则为 false
> 从左到右 左边的实体大于右边运算结果为 true,否则为 false
<= 从左到右 左边的实体小于或等于右边运算结果为 true,否则为 false
< 从左到右 左边的实体小于右边运算结果为 true,否则为 false

代码示例:

package main

import (
    "fmt"
)

func main() {
    var a = -7
    var b = 4

    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)
}

效果如下:

Go 语言的关系运算符

3. Go 语言的逻辑运算符

Go 语言中的逻辑运算符如表所示:

运算符 结合性 描述
&& 从左到右 左右实体均为 true 运算结果为 true ,否则为 false
|| 从左到右 左右实体均为 false 运算结果为 false ,否则为 true
从右到左 右边实体为 false 运算结果为 true ,否则为 false

代码示例:

package main

import (
    "fmt"
)

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

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

效果如下:

Go 语言的逻辑运算符

4. Go 语言的位运算符

Go 语言的位运算符如表所示:

运算符 结合性 描述
& 从左到右 按位与
| 从左到右 按位或
^ 从左到右 按位异或
<< 从左到右 左位移
>> 从左到右 右位移

代码示例:

package main

import (
    "fmt"
)

func main() {
    var a = 28 //0001 1100
    var b = 99 //0110 0011

    fmt.Println(" a & b :", a&b)  //0 : 0000 0000
    fmt.Println(" a | b :", a|b)  //127 : 0111 1111
    fmt.Println(" a ^ b :", a^b)  //127 : 0111 1111
    fmt.Println("a >> 2 :", a>>2) //7 : 0000 0111
    fmt.Println("b << 1 :", b<<1) //198 : 1100 0110
}

执行结果:

Go 语言的位运算符

5.Go 语言的赋值运算符

Go 语言赋值运算符如下表所示:

运算符 结合性 描述
= 从右到左 将左边的实体赋值给右边的变量
+= 从右到左 将右边的变量与左边的实体进行加运算之后赋值给右边的变量
-= 从右到左 将右边的变量与左边的实体进行减****运算之后赋值给右边的变量
*= 从右到左 将右边的变量与左边的实体进行乘运算之后赋值给右边的变量
/= 从右到左 将右边的变量与左边的实体进行除运算之后赋值给右边的变量
%= 从右到左 将右边的变量与左边的实体进行取余运算之后赋值给右边的变量
>>= 从右到左 将右边的变量与左边的实体进行右位移运算之后赋值给右边的变量
<<= 从右到左 将右边的变量与左边的实体进行左位移运算之后赋值给右边的变量
&= 从右到左 将右边的变量与左边的实体进行与运算之后赋值给右边的变量
|= 从右到左 将右边的变量与左边的实体进行或运算之后赋值给右边的变量
^= 从右到左 将右边的变量与左边的实体进行异或运算之后赋值给右边的变量

代码示例:

package main

import (
    "fmt"
)

func main() {
    var a = 28
    var b = 99
    a = b
    fmt.Println("  a = b :", a)
    a = 28
    a += b
    fmt.Println(" a += b :", a)
    a = 28
    a -= b
    fmt.Println(" a -= b :", a)
    a = 28
    a *= b
    fmt.Println(" a *= b :", a)
    a = 28
    a /= 2
    fmt.Println(" a /= 2 :", a)
    a = 28
    b %= 1
    fmt.Println(" b %= 1 :", a)
    a = 28
    a &= b
    fmt.Println(" a &= b :", a)
    a = 28
    a |= b
    fmt.Println(" a |= b :", a)
    a = 28
    a ^= b
    fmt.Println(" a ^= b :", a)
    a = 28
    a >>= 2
    fmt.Println("a >>= 2 :", a)
    a = 28
    b <<= 1
    fmt.Println("b <<= 1 :", a)
}

执行结果:

Go 语言的赋值运算符

6. 优先级

下表为各运算符的优先级示图,优先级从高到低

优先级 类别 运算符
1 括号运算符 ()
2 单目运算符 !、++、–
3 算数运算符 *、/、%
4 +、-
5 位移运算符 >>、<<
6 关系运算符 <、<=、>、>=
7 ==、!=
8 按位与 &
9 按位异或 ^
10 按位或 |
11 逻辑与 &&
12 逻辑或 ||
13 赋值运算符 =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、|=

代码示例:

package main

import (
    "fmt"
)

func main() {
    var a = 28
    var b = 99
    fmt.Println("  a + b * 2 =", a+b*2)   //乘法优先级较高,先执行乘法
    fmt.Println("(a + b) * 2 =", (a+b)*2) //括号优先级最高,先执行括号中的运算
}

执行结果:

各运算符的优先级

7. 小结

Go 语言的运算符一般分为算数运算符、关系运算符、逻辑运算符、位运算符以及赋值运算符四大类。在使用过程中如果记不清楚运算符的优先级,可以使用特殊的运算符——括号运算符(),其优先级最高,使用它就可以随心所欲的控制优先级了。

以上关于18. Go 语言中的运算符的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 18. Go 语言中的运算符

发表回复