Rust 语言基础语法:操作符
运算符(操作符)定义了对于数据的的处理。被运算符所作用的数据被称为运算数。分析以下表达式:
7 + 5 = 12
在该表达式中 7,5 和 12 是运算数,而 + 和 = 是运算符。
Rust 中的运算符大致可以分为:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 条件运算符
算数运算符
假设变量 a 的值为 10,变量 b 的值为 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) 是 false |
2 | < | 小于 | (A < B) 是 true |
3 | >= | 大于等于 | (A >= B) 是 false |
4 | <= | 小于等于 | (A <= B) 是 true |
5 | == | 等于 | (A == B) 是 false |
6 | != | 不等于 | (A != B) 是 true |
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符也返回布尔值。假设变量 A 的值为 10,变量 B 的值为 20。
序号 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | &&(与) | 仅当指定的所有表达式都返回 true 时,运算符才返回 true | (A > 10 && B > 10) 是 false |
2 | ||(或) | 如果指定的至少一个表达式返回 true,则运算符返回 true | (A > 10 || B >10) 是 true |
3 | !(非) | 运算符返回表达式结果的倒数 | ! (A > 10) 是 true |
按位运算符
假设变量 A 的值为 2,变量 B 的值为 3。
序号 | 运算符 | 描述 | 例子 |
---|---|---|---|
1 | &(按位与) | 它对其整数参数的每一位执行布尔“与”运算 | (A & B) 是 2 |
2 | |(按位或) | 它对其整数参数的每一位执行布尔“或”运算 | (A | B) 是 3 |
3 | ^(按位异或) | 它对其整数参数的每一位执行布尔“异或”运算。异或表示一个操作数为 true 或两个操作数为 true,但不是两个都为真 | (A ^ B) 是 1 |
4 | !(按位非) | 它是一元运算符,通过反转操作数中的所有位进行操作 | (!B) 是 -4 |
5 | <<(左移) | 它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位填充零。将值左移一个位置等同于将其乘以2,将两个位置左移等同于乘以4,依此类推 | (A << 1) 是 4 |
6 | >>(右移) | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数 | (A >> 1) 是 1 |
7 | >>>(无符号右移) | 该运算符类似于>>运算符,只是向左移位的位始终为零 | (A >>> 1) 是 1 |