您现在的位置是:首页 >技术杂谈 >Rust教程-2.2 操作符和表达式网站首页技术杂谈

Rust教程-2.2 操作符和表达式

Wrn_CSDN 2025-07-17 00:01:04
简介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 比较操作符

比较操作符用于比较两个值,并返回布尔值 truefalse。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 中的操作符。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。