Rust运算符
运算符是将对数据执行的操作,被操作的数据称为操作数。考虑以下表达式:
7 + 5 = 12
此处,7、5和12是操作数,而+和=是运算符。
Rust的主要运算符可以归类为:
算术运算符
按位运算符
比较运算符
逻辑运算符
条件运算符
算术运算符
假设变量a和b中的值分别为10和5。
序号 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | +(加法) | 返回操作数之和 | a + b 结果是 15 |
2 | -(减法) | 返回值的差 | a-b 结果是 5 |
3 | *(乘法) | 返回值的乘积 | a * b 结果是 50 |
4 | / (分配) | 执行除法运算并返回商 | a / b 结果是 2 |
5 | %(模) | 执行除法运算并返回余数 | a%b 结果是 0 |
注意:Rust不支持++和--运算符。
关系运算符
关系运算符测试或定义两个实体之间的关系类型。关系运算符用于比较两个或多个值。关系运算符返回布尔值:true或false。
假设A的值为10,B的值为20。
例子 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | > | 大鱼 | (A> B)为假 |
2 | < | 小于 | (A <B)为真 |
3 | >= | 大于或等于 | (A> = B)为假 |
4 | <= | 小于或等于 | (A <= B)为真 |
5 | == | 等于 | (A == B)为假 |
6 | != | 不相等 | (A!= B)为真 |
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符也返回布尔值。假设变量A的值为10,变量B的值为20。
序号 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | && (和) | 仅当指定的所有表达式均返回true时,运算符才返回true | (A> 10 && B> 10)为假 |
2 | ||(OR) | 如果指定的至少一个表达式返回true,则运算符返回true | (A> 10 || B> 10)为真 |
3 | ! (NOT) | 运算符返回表达式结果的倒数。例如!(> 5)返回false | !(A> 10)为真 |
按位运算符
假设变量A = 2,B = 3。
序号 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | &(按位与) | 它对其整数参数的每一位执行布尔“与”运算。 | (A&B)结果是2 |
2 | | (BitWise或) | 它对其整数参数的每一位执行布尔或运算。 | (A | B)结果是3 |
3 | ^(按位XOR) | 它对其整数参数的每一位执行布尔异或运算。异或表示一个操作数为true或两个操作数为true,但不是两个都为真。 | (A ^ B)结果是1 |
4 | ! (按位不) | 它是一元运算符,通过反转操作数中的所有位进行操作。 | (!B)结果是-4 |
5 | <<(左移) | 它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位填充零。将值左移一个位置等同于将其乘以2,将两个位置左移等同于乘以4,依此类推。 | (A << 1)结果是4 |
6 | >>(右移) | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | (A >> 1)结果是1 |
7 | >>>(右移零) | 该运算符类似于>>运算符,只是向左移位的位始终为零。 | (A >>> 1)结果是1 |