从0开始学GO之运算符


更多参见: 从0开始学GO之目录

Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

算术运算符

运算符描述示例结果
+5+27
-5-23
*5*210
/5/22
%取余5%21
++后自增,没有前自增a:=5;a++6
后自减,没有前自减b:=5;b–4
package main
import "fmt"

func main() {
	a:=5;a++
	fmt.Println("a = ",a) // a =  6
	b:=5;b--
	fmt.Println("b = ",b) // b =  4
	c := b / 3
	fmt.Println("c = ",c) // c =  1
	d := a % 4
	fmt.Println("d = ",d) // d =  2
}

在这里插入图片描述

关系运算符

运算符描述示例结果
==相等于5==6false
!=不等于5!=6true
<小于5<6true
>大于5>6false
<=小于等于5<=6true
>=大于等于5>=6false

逻辑运算符

运算符描述示例结果
!!a如果a为假,则!a为真;如果a为真,则!a为假
&&a&&b如果a和b都为真,则结果为真,否则为假
||a||b如果a和b有一个为真,则结果为真,二者都为假时,结果为假

位运算符

位运算符对整数在内存中的二进制位进行操作。a = 10 , b = 27

运算符描述示例结果
&按位与a&b10
|按位或a|b27
^异或a^b17
<<左移,左边丢弃,右边补0a<<240
>>右移,右边丢弃,左边补位。b>>26
package main
import "fmt"

func main() {
	a:=10
	b:=27
	c := a & b // c =  10  	1010 & 11011 -> 01010 = 10
	d := a | b // d =  27	1010 | 11011 -> 11011 = 27
	e := a ^ b // e =  17	1010 ^ 11011 -> 10001 = 17
	f := a << 2 // f =  40  1010 << 2 -> 101000 = 40
	g := b >> 2 // g =  6   11011 >>2 -> 110 = 6
	fmt.Println("c = ",c)
	fmt.Println("d = ",d)
	fmt.Println("e = ",e)
	fmt.Println("f = ",f)
	fmt.Println("g = ",g)
}

在这里插入图片描述

赋值运算符

运算符说明示例
=普通赋值c = a + b 将 a + b 表达式结果赋值给 c
+=相加后再赋值c += a 等价于 c = c + a
-=相减后再赋值c -= a 等价于 c = c - a
*=相乘后再赋值c = a 等价于 c = c a
/=相除后再赋值c /= a 等价于 c = c / a
%=求余后再赋值c %= a 等价于 c = c % a
<<=左移后赋值c <<= 2 等价于 c = c << 2
>>=右移后赋值c >>= 2 等价于 c = c >> 2
&=按位与后赋值c &= 2 等价于 c = c & 2
^=按位异或后赋值c ^= 2 等价于 c = c ^ 2
|=按位或后赋值c |= 2 等价于 c = c | 2

其他运算符

运算符术语示例说明
&取地址运算符&a变量a的地址
*取值运算符*a指针变量a所指向内存的值

运算符优先级

有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

优先级运算符
5* / % << >> & &^
4+ - | ^
3== != < <= > >=
2&&
1||

参考:

https://www.runoob.com/go/go-operators.html

个人能力有限,如有错误或者其他建议,敬请告知欢迎探讨,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

墨1024

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

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

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

打赏作者

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

抵扣说明:

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

余额充值