您现在的位置是:首页 >其他 >Rust教程-2.2 操作符和表达式网站首页其他
Rust教程-2.2 操作符和表达式
2.2 操作符和表达式
在 Rust 中,操作符和表达式是构建逻辑、执行计算的基础。这一节将详细介绍 Rust 支持的各种操作符,包括算术操作符、比较操作符以及逻辑操作符等,并展示如何使用它们。
2.2.1 算术操作符
Rust 支持常见的算术运算,如加法、减法、乘法、除法和取余。这些操作符可以直接应用于数字类型。
-
加法 (
+):两个数值相加。let sum = 5 + 10; -
减法 (
-):从一个数中减去另一个数。let difference = 95 - 5; -
乘法 (
*):两个数值相乘。let product = 4 * 30; -
除法 (
/):一个数除以另一个数。对于整数除法,结果会向下取整。let quotient = 56 / 32; // 结果为 1 -
取余 (
%):返回两数相除后的余数。let remainder = 43 % 5; // 结果为 3
2.2.2 比较操作符
比较操作符用于比较两个值,并返回布尔值 true 或 false。Rust 支持以下几种比较操作:
-
等于 (
==):判断两个值是否相等。let is_equal = 5 == 5; // true -
不等于 (
!=):判断两个值是否不相等。let not_equal = 5 != 3; // true -
大于 (
>):判断左边的值是否大于右边的值。let greater_than = 5 > 3; // true -
小于 (
<):判断左边的值是否小于右边的值。let less_than = 5 < 3; // false -
大于等于 (
>=):判断左边的值是否大于或等于右边的值。let greater_than_or_equal = 5 >= 3; // true -
小于等于 (
<=):判断左边的值是否小于或等于右边的值。let less_than_or_equal = 5 <= 5; // true
2.2.3 逻辑操作符
逻辑操作符用于组合或反转布尔表达式的值。Rust 提供了三种主要的逻辑操作符:与(AND)、或(OR)和非(NOT)。
-
与 (
&&):当两边的表达式都为true时,整个表达式才为true。let can_vote = age >= 18 && citizenship == "citizen"; // 如果年龄大于等于18且国籍为公民,则可以投票 -
或 (
||):只要有一个表达式为true,整个表达式就为true。let can_enter = has_ticket || is_vip; // 如果有票或者VIP身份,则可以进入 -
非 (
!):反转布尔表达式的值。let is_not_active = !is_active; // 如果 is_active 是 false, 则 is_not_active 为 true
2.2.4 位运算符
Rust 提供了几种位运算符,包括按位与、按位或、按位异或、按位非、左移和右移。
-
按位与 (
&):对两个数的每一位执行与操作。只有当对应的两位都为 1 时,结果才为 1。let and_result = 5 & 3; // 二进制: 0101 & 0011 = 0001, 结果为 1 -
按位或 (
|):对两个数的每一位执行或操作。只要有一个位为 1,结果就为 1。let or_result = 5 | 3; // 二进制: 0101 | 0011 = 0111, 结果为 7 -
按位异或 (
^):对两个数的每一位执行异或操作。如果对应的两位不同,则结果为 1。let xor_result = 5 ^ 3; // 二进制: 0101 ^ 0011 = 0110, 结果为 6 -
按位非 (
!):翻转操作数的所有位(注意:对于有符号整数,这涉及到补码表示)。let not_result = !5; // 对于 u8 类型,二进制: ~0000_0101 = 1111_1010, 结果取决于类型的具体定义注意:由于 Rust 的整数类型是有符号或无符号的,使用
!操作符时需要注意类型。例如,对于u8,上面的例子会给出不同的结果。 -
左移 (
<<):将一个数的所有位向左移动指定的位数,空出的位置用 0 填充。let left_shift_result = 5 << 1; // 二进制: 0101 << 1 = 1010, 结果为 10 -
右移 (
>>):将一个数的所有位向右移动指定的位数。对于无符号数,空出的位置用 0 填充;对于有符号数,空出的位置用最高有效位填充(即保持符号不变)。let right_shift_result = 5 >> 1; // 二进制: 0101 >> 1 = 0010, 结果为 2
通过掌握这些操作符和表达式,你可以更灵活地控制程序的流程和逻辑。无论是进行简单的数学计算还是复杂的条件判断,理解如何正确使用这些操作符都是至关重要的。希望这部分内容能够帮助你更好地理解和应用 Rust 中的操作符。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结