• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言运算符优先级

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
优先级 分类 运算符 结合性
1 逗号运算符 , 从左到右
2 赋值运算符 =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、|= 从右到左
3 逻辑或 || 从左到右
4 逻辑与 && 从左到右
5 按位或 | 从左到右
6 按位异或 ^ 从左到右
7 按位与 & 从左到右
8 相等/不等 ==、!= 从左到右
9 关系运算符 <、<=、>、>= 从左到右
10 位移运算符 <<、>> 从左到右
11 加法/减法 +、- 从左到右
12 乘法/除法/取余 *(乘号)、/、% 从左到右
13 单目运算符 !、*(指针)、& 、++、--、+(正号)、-(负号) 从右到左
14 后缀运算符 ( )、[ ]、-> 从左到右

算术运算符

+:相加;
-:相减;
*:相乘;
/:相除;
%:求余;
++:自增;
--:自减;
其中,++ 与 -- 不能用于赋值表达式, 如: count2 := count++;并且在 Go 语言中,不存在如:++count 表达式。

关系运算符

==:检查两个值是否相等,如果相等返回 true,否则返回 false;
!=:检查两个值是否不相等,如果不相等返回 true,否则返回 false;
>:检查左边值是否大于右边值,如果是返回 true,否则返回 false;
<:检查左边值是否小于右边值,如果是返回 true,否则返回 false;
>=:检查左边值是否大于等于右边值,如果是返回 true,否则返回 false;
<=:检查左边值是否小于等于右边值,如果是返回 true,否则返回 false;

逻辑运算符

&&:逻辑 AND 运算符。如果两边的操作数都是 true,则条件为 true,否则为 false;
||:逻辑 OR 运算符。如果两边的操作数有一个 true,则条件为 true,否则为 false;
!:逻辑 NOT 运算符。如果条件为 true,则逻辑 NOT 添加为 true,否则为 false;

位运算符

位运算符是对整数在内存中的二进制进行操作。
&:按位与运算符。其功能是参与运算的两个数的二进制按位对齐,当对应位都为 1 时,才返回 1;

fmt.Println(3 & 4)  // 0

// 计算过程
//   0011     => 3 的二进制
//   0100     => 4 的二进制
// &
// ---------------------------
//   0000     => 0 的二进制

|:按位或运算符。其功能是参与运算的两个数的二进制按位对齐,当对应位中只要有一位是 1,就返回 1;

fmt.Println(3 | 4) // 7

// 计算过程
//   0011     => 3 的二进制
//   0100     => 4 的二进制
// |
// ---------------------------
//   0111     => 7 的二进制

^:按位异或运算符。其是参与运算的两个数的二进制按位对齐,当对应位有一位是 1,就返回 1;如果对应两位都是 1 或 0,就返回 0;

fmt.Println(25 ^ 3) // 26

// 计算过程
//   0001 1001     => 25 的二进制
//   0000 0011     => 3 的二进制
// ^
// ---------------------------
//   0001 1010     => 26 的二进制

<<:左移运算符。其功能是将数值的二进制所有位向左移动指定的位数;

fmt.Println(3 << 3) // 24

// 计算过程
//      0000 0011     => 3 的二进制
//              3
// <<      
// ---------------------------
//      0001 1000     => 24 的二进制

>>:右移运算符。其功能是将数值的二进制所有位向右移动指定的位数;

fmt.Println(3 >> 3) // 0

// 计算过程
//      0000 0011     => 3 的二进制
//              3
// >>      
// ---------------------------
//      0000 0000     => 0 的二进制

赋值运算符

=:简单的赋值运算符,将一个表达式的值赋给一个左值;
+=:相加后再赋值;
-=:相减后再赋值;
*=:相乘后再赋值;
/=:相除后再赋值;
%=:取余后再赋值;
&=:按位与后赋值;
|=:按位或后赋值;
^=:按位异或后赋值;
<<=:左位移后赋值;
>>=:右位移后赋值;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
泊爷带你学go -- 经典的继承与接口 简直吊炸天 ! - huoppo发布时间:2022-07-10
下一篇:
Customizationtogotothemaintableform发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap