运算符
大约 3 分钟
程序、表达式、运算符之间的关系
通常计算机程序是由多条表达式语句按照一定的逻辑关系所构成的,表达式(Expression)是程序算法的基本单位。
表达式
表达式由操作数(常量、变量、函数调用等)和运算符结合一起构成的式子;
运算符
运算符(Operator)用于对操作数进行运算
根据操作数的数目可分为一元运算符、二元运算符;
按照运算符的功能可分为赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符等;
运算符
赋值运算符
赋值运算符是把等号右边的操作数(常量、变量、函数调用等)的值赋于等号左边的变量
赋值运算格式如下:
<变量名称> = <操作数>
也可以在定义变量时同时赋值,格式如下:
var <变量名称> [变量类型] = <操作数>
算术运算符
运算符 | 描述 | 说明 |
---|---|---|
+ | 加法运算符 | 操作数可以是整数、浮点数和字符串 |
- | 减法运算符 | 操作数可以是整数和浮点数 |
* | 乘法运算符 | 操作数可以是整数和浮点数 |
/ | 除法运算符 | 分母不能位0,操作数为整数即是取整运算 |
% | 取余运算符 | 操作数为整数,结果为整数 |
👣
- 乘除法优先级高于加减法
- 在Go 语言中++、--是语句而非表达式
关系运算符
关系运算的实质是比较,运算结果是布尔类型
运算符 | 描述 | 说明 |
---|---|---|
> | 大于 | a>b,返回true;否则,返回false |
>= | 大于等于 | a>=b,返回true;否则,返回false |
< | 小于 | a<b,返回true;否则,返回false |
<= | 小于等于 | a<=b,返回true;否则,返回false |
== | 等于 | a==b,返回true;否则,返回false |
!= | 不等于 | a!=b,返回true;否则,返回false |
逻辑运算符
逻辑运算符的操作数是bool型
运算符 | 描述 | 说明 |
---|---|---|
! | 逻辑非运算符 | 一元运算符,取反 |
&& | 逻辑与运算符 | 逻辑与 |
|| | 逻辑或运算符 | 逻辑或 |
位运算符
位操作运算符的操作数是整型或byte型
运算符 | 描述 | 说明 | 示例 |
---|---|---|---|
^ | 取反运算符 | 一元运算符,对操作数按位取反 | ^ 0111 = 1000 |
& | 按位与运算符 | 二元运算符 | 0101 & 0011 = 0001 |
| | 按位或运算符 | 二元运算符 | 0101 | 0011 = 0111 |
^ | 按位异或运算符 | 二元运算符 | 0101 ^ 0011 = 0110 |
&^ | 标志位清楚运算符 | 二元运算符 | 0110 &^ 1011 = 0100 |
<< | 左移运算符 | 二元运算符 | 0001 << 3 = 1000 |
>> | 右移运算符 | 二元运算符 | 1010 >> 2 = 0010 |
通道运算符
通道运算符使用<-
接受或者发送数据
运算符的优先级和结合
运算符优先级共分为7级,由7->1优先级依次降低
优先级 | 运算符 | 说明 |
---|---|---|
7 | ^ ! | 一元运算符 |
6 | * / % << >> & &^ | 二元运算符 |
5 | + - | ^ | 二元运算符 |
4 | == != < <= >= > | 关系运算符 |
3 | <- | 通道运算符 |
2 | && | 逻辑运算符 |
1 | || | 逻辑运算符 |