Golang 运算符

229 阅读3分钟

运算符

Go 语言内置的运算符:

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

算术运算符

下表列出了所有 Go 语言的 算术运算符,假定 A 的值为 10,B 的值为 20

运算符描述实例
  • | 相加 | A + B 结果 30
  • | 相减 | A - B 结果 -10
  • | 相乘 | A * B 结果 200 / | 相除 | A / B 结果 0.5 % | 取余 | A % B 结果 10 ++ | 自增 | A++ 结果 11 -- | 自减 | A-- 结果 9

关系运算符

下表列出了所有 Go 语言的 关系运算符,假定 A 的值为 10,B 的值为 20

运算符描述实例
==检查两个数是否相等,如果相等返回 true,否则返回 false( A == B ) 为 false
!=检查两个数是否不相等,如果不相等返回 true,否则返回 false( A != B ) 为 true
>检查左边值是否大于右边值,如果是返回 true,否则返回 false( A > B ) 为 false
<检查左边值是否小于右边值,如果是返回 true,否则返回 false( A < B ) 为 true
>=检查左边值是否大于等于右边值,如果是返回 true,否则返回 false( A >= B ) 为 false
<=检查左边值是否小于等于右边值,如果是返回 true,否则返回 false( A <= B ) 为 true

逻辑运算符

下表列出了所有 Go 语言的 逻辑运算符,假定 A 的值为 true,B 的值为 false

运算符描述实例
&& | AND逻辑与运算符,如果左右两边值都为 true,返回 true,否则返回 false (ps:遇到第一个为 false 的值,则停止运算,返回 false)( A && B ) 为 false
|| | OR逻辑或运算符,如果左右两边值有一个 true,返回 true,否则返回 false (ps:遇到第一个为 true 的值,则停止运算,返回 true)( A || B ) 为 true
!逻辑非运算符,如果右边值为 false,返回 true,否则返回 false! ( A > B ) 为 true

位运算符

位运算符对整数在内存中的二进制位进行操作

下表列出了位运算符 &, |, ^ 的计算

PQP & QP | QP ^ Q
00000
01011
11110
10011

下表列出了所有 Go 语言的 位运算符,假定 A 的值为 60,B 的值为 13

A :60 :0011 1100 B :13 :0000 1101

运算符描述实例
&按位与运算符 & 是双目运算符,其功能是参与运算的两数各对应的二进制位相与( A & B ) 为 12,二进制为 0000 1100
|按位或运算是双目运算符,其功能是参与运算的两数各对应的二进制位相或( AB ) 为 61,二进制为 0011 1101
按位异或运算符 ^ 是双目运算符,其功能是参与运算的两数各对应的二进制位相异或;对应的二进制位相异时,结果为 1,反之为 0( A ^ B ) 为 49,二进制为 0011 0001
<<左移运算符 << 是双目运算符,左移 n 位就是乘以 2 的 n 次方,其功能是把 << 运算符 左边数 的各二进制位全部左移若干位,由 << 运算符 右边数 指定移动的位数,高位丢弃,地位补 0A << 2 为 240,二进制为 1111 0000
>>右移运算符 >> 是双目运算符,右移 n 位就是除以 2 的 n 次方,其功能是把 >> 运算符 左边数 的各二进制位全部右移若干位,由 >> 运算符 右边数 指定移动的位数A >> 2 为 15,二进制为 0000 1111

赋值运算符

下表列出了所有 Go 语言的 赋值运算符

运算符描述实例
=简单的赋值运算符,将一个表达式的值赋给左值C = A + B
+=相加后再赋值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)

其他运算符

下表列出了 Go 语言的 其他运算符

运算符描述实例
&返回变量存储地址&a;返回变量的实际地址
  • | 指针变量 | *a;是一个指针变量 或者 var a = new(int);*a; 返回一个指针变量地址存储的值

运算符优先级

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