Go语言运算符

Go语言运算符和运算符的优先级与C++一致,如果你熟悉C++或者Java的运算符,就不需要查阅这篇博客。Go和Java在运算符上的区别和C++和Java的区别一样。Go和C++都支持指针,因此有取地址运算符&和取内容运算符*,你也可以理解*指示一个指针变量。除此之外,Go不支持C++以及Java所支持的唯一的三目运算符条件?语句1:语句2

Go语言内置的运算符包括:

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符(与指针相关的&*)
以上全部等同于C++

算术运算符

运算符描述
+
-
*
/整除
%取余
++自增
--自减

逻辑运算符(与、或、非)

运算符描述
&&逻辑与
||逻辑或
!逻辑非

位运算符

运算符描述
&按位与
|按位或
^按位异或
<<左移
>>右移

同C++,Go也不支持Java的循环左移<<<和循环右移>>>。因为它的整型有有符号和无符号之分。<<<也称为无符号左移,>>>也称为无符号右移。

赋值运算符

运算符描述
=赋值
+=i += ji = i + j的简写
-=i -= ji = i - j的简写
*=i *= ji = i * j的简写
/=i /= ji = i / j的简写
%=i %= ji = i % j的简写
<<=i <<= ji = i << j的简写
>>=i >>= ji = i >> j的简写
&=i &= ji = i & j的简写
^=i ^= ji = i ^ j的简写
|=i |= ji = i | j的简写

变量初始化时也支持:=运算符,这点区别于C++。

指针运算符

运算符描述
&取地址运算符,它得到一个变量的地址(指针)
*取内容运算符,它根据指针(地址)得到变量的值,因此*后面跟的是指针变量

运算符优先级

常用二元运算符优先级

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

全部运算符优先级

优先级分类运算符结合性
1逗号运算符,从左到右
2赋值运算符=+=-=*=/=%=>=<<=&=^=|=从右到左
3逻辑或||从左到右
4逻辑与&&从左到右
5按位或|从左到右
6按位异或^从左到右
7按位与&从左到右
8相等/不等==!=从左到右
9关系运算符<<=>>=从左到右
10位移运算符<<>>从左到右
11加法/减法+-从左到右
12乘法/除法/取余*(乘号)、/%从左到右
13单目运算符!*(指针)、&++--+(正号)、-(负号)从右到左
14后缀运算符( )[ ]->从左到右
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值