Rust 运算符

运算符是执行值或变量操作的符号。例如,- 是执行两个值之间减法的运算符。

Rust 编程提供了各种运算符,可分为以下主要类别

  • 算术运算符
  • 复合赋值运算符
  • 逻辑运算符
  • 比较运算符

1. Rust 中的算术运算符

我们使用算术运算符来执行加法、减法、乘法和除法。

以下是 Rust 中各种算术运算符的列表。我们在示例中使用了变量名 ab

运算符 示例
+ (加法) a + b
- (减法) a - b
* (乘法) a * b
/ (除法) a / b
% (取模/余数) a % b

示例 1:加法、减法和乘法运算符

fn main() {
    let a = 20;
    let b = 2;

    // add two variables using + operator
    let x = a + b;
    println!("{} + {} = {}", a, b, x);

    // subtract two variables using - operator
    let y = a - b;
    println!("{} - {} = {}", a, b, y);

    // multiply two variables using * operator
    let z = a * b;
    println!("{} * {} = {}", a, b, z);
}

输出

20 + 2 = 22
20 - 2 = 18
20 * 2 = 40

示例 2:Rust 除法运算符

fn main() {
    let dividend = 21;
    let divisor = 8;

    // arithmetic division using / operator with integers
    let division = dividend / divisor;

    println!("{} / {} = {}", dividend, divisor, division);
}

输出

21 / 8 = 2

在上面的示例中,我们使用 / 运算符来除以两个整数 218。运算结果为 2

在标准计算中,21 / 8 的结果为 2.625。但是,在 Rust 中,当 / 运算符与整数值一起使用时,我们得到的是商(整数)作为输出。

Integer division operation in Rust
Rust 中整数除法运算的工作原理

如果我们想要实际结果,我们应该使用带浮点数值的 / 运算符。例如,

fn main() {
    let dividend = 21.0;
    let divisor = 8.0;

    // arithmetic division using / operator with floating point values
    let division = dividend / divisor;

    println!("{} / {} = {}", dividend, divisor, division);
}

输出

21 / 8 = 2.625

在此,dividend(被除数)和 divisor(除数)变量都已分配浮点数值。因此,除法运算返回浮点结果 2.625


示例 3:取模/余数运算符

fn main() {
    let dividend = 21;
    let divisor = 8;

    // arithmetic remainder using % operator
    let remainder = dividend % divisor;
  
    println!("{} % {} = {}", dividend, divisor, remainder);
}

输出

21 % 8 = 5

在这里,我们使用取模/余数运算符 % 和两个整数:218。运算结果为 5

正如其名称所示,取模/余数运算符 % 在除法后始终返回余数。

Remainder operation in Rust
Rust 中取模/余数运算的工作原理

赋值运算符

我们使用赋值运算符将值赋给变量。例如,

let x = 5;

在此,= 是一个赋值运算符,它将右侧的值 5 赋给左侧的变量 x。赋值运算符是 Rust 中最常见的运算符。


赋值运算符

在 Rust 中,我们使用赋值运算符将值赋给变量。例如,

let mut x = 1;

在此,= 运算符将右侧的值赋给左侧的变量。

复合赋值运算符

我们还可以使用赋值运算符和算术运算符,称为复合赋值运算符。例如,

let mut x = 1;

// compound assignment operators
x += 3;

在此,+= 是一个复合赋值运算符,称为加法赋值。它首先将 3 加到 x 的值(1)上,并将最终结果(4)赋给 x

以下是 Rust 中各种复合赋值运算符的列表。

运算符 示例 等同于
+= (加法赋值) a += b a = a + b
-= (减法赋值) a -= b a = a - b
*= (乘法赋值) a *= b a = a * b
/= (除法赋值) a /= b a = a / b
%= (取模/余数赋值) a %= b a = a % b

示例:复合赋值运算符

fn main() {
    let mut a = 2;
  
    // arithmetic addition and assignment
    a += 3;

    println!("a = {}", a);
}

输出

a = 5

比较运算符

我们使用比较运算符来比较两个值或变量。例如,

6 > 5

在这里,关系运算符 >(大于)检查 6 是否大于 5

关系运算符返回

  • 如果两个值之间的关系正确,则返回 true
  • 如果关系不正确,则返回 false

注意:比较运算符也称为关系运算符

以下是 Rust 中可用的比较运算符列表。

运算符 示例 描述
> (大于) a > b 如果 a 大于 b,则返回 true
< (小于) a < b 如果 a 小于 b,则返回 true
>= (大于或等于) a >= b 如果 a 大于或等于 b,则返回 true
<= (小于或等于) a <= b 如果 a 小于或等于 b,则返回 true
== (等于) a == b 如果 a 等于 b,则返回 true
!= (不等于) a != b 如果 a 不等于 b,则返回 true

示例:比较运算符

fn main() {
    let a = 7;
    let b = 3;
    
    // use of comparison operators
    let c = a > b;
    let d = a < b;
    let e = a == b;
    
    println!("{} >= {} is {}", a, b, c);
    println!("{} <= {} is {}", a, b, d);
    println!("{} == {} is {}", a, b, e);
}

输出

7 > 3 is true
7 < 3 is false
7 == 3 is false

逻辑运算符

我们使用逻辑运算符来执行逻辑决策或操作。逻辑操作根据条件返回 truefalse。例如,

(5 < 6) && (7 > 4)

在这里,&&逻辑与运算符,如果两个条件都为 true,则返回 true。在我们的示例中,两个条件都为 true。因此,表达式为 true

Rust 中主要有 3 种逻辑运算符。

运算符 示例 描述
&& (逻辑 AND) exp1 && exp2 如果 exp1exp2 都为 true,则返回 true
|| (逻辑 OR) exp1 || exp2 如果任一表达式为 true,则返回 true
! (逻辑 NOT) !exp 如果表达式为 false,则返回 true;如果表达式为 true,则返回 false

示例:逻辑运算符

fn main() {
    let a = true;
    let b = false;
    
    // logical AND operation
    let c = a && b;

    // logical OR operation
    let d = a || b;

    // logical NOT operation
    let e = !a;
    
    println!("{} && {} = {}", a, b, c);
    println!("{} || {} = {}", a, b, d);
    println!("!{} = {}", a, e);
}

输出

true && false = false
true || false = true
!true = false

注意:逻辑 ANDOR 运算符也称为短路逻辑运算符,因为这些运算符在不需要时不会评估整个表达式。例如,在此表达式中

false || true || false

|| 运算符评估为 true,因为一旦编译器看到一个 true 表达式,它就会跳过评估并直接返回 true

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战