ZetCode

Rust 运算符和表达式

最后修改于 2025 年 2 月 19 日

在本文中,我们将展示如何在 Rust 中使用运算符和表达式。

表达式由操作数和运算符组成。运算符指定要对操作数执行的操作。表达式中运算符的评估顺序由它们的优先级和结合性决定。

运算符是代表特定操作的符号。在编程语言中,运算符源自数学概念。程序员处理数据,运算符用于操作这些数据。操作数是运算符作用于的输入(或参数)。

一元运算符

一元运算符作用于单个操作数。以下是 Rust 中的一元运算符:

main
fn main() {
    println!("{}", 2);
    println!("{}", -2);

    let a = 1;
    println!("{}", -a);
    println!("{}", -(-a));

    let is_married = false;
    println!("{}", !is_married);
}

该示例展示了一元减号和逻辑非运算符。

算术运算符

算术运算符用于对数字执行数学运算。

main.rs
fn main() {
    let a = 10;
    let b = 20;

    println!("Addition: {}", a + b);
    println!("Subtraction: {}", a - b);
    println!("Multiplication: {}", a * b);
    println!("Division: {}", a / b);
    println!("Modulo: {}", a % b);
}

程序定义了两个整数变量。算术运算符应用于这些变量。

println!("Addition: {}", a + b);

加法运算符。

println!("Subtraction: {}", a - b);

减法运算符。

println!("Multiplication: {}", a * b);

乘法运算符。

println!("Division: {}", a / b);

除法运算符。

println!("Modulo: {}", a % b);

模运算符。

$ cargo run -q
Addition: 30
Subtraction: -10
Multiplication: 200
Division: 0
Modulo: 10

比较运算符

比较运算符用于比较两个值。它们返回一个布尔值。

以下示例演示了 Rust 中的比较运算符。

main.rs
fn main() {
    let a = 10;
    let b = 20;

    println!("Equal: {}", a == b);
    println!("Not equal: {}", a != b);
    println!("Greater: {}", a > b);
    println!("Less: {}", a < b);
    println!("Greater or equal: {}", a >= b);
    println!("Less or equal: {}", a <= b);
}

程序定义了两个整数变量。比较运算符应用于这些变量。

println!("Equal: {}", a == b);

相等运算符。

println!("Not equal: {}", a != b);

不等运算符。

println!("Greater: {}", a > b);

大于运算符。

println!("Less: {}", a < b);

小于运算符。

println!("Greater or equal: {}", a >= b);

大于或等于运算符。

println!("Less or equal: {}", a <= b);

小于或等于运算符在第六行中使用。

$ cargo run -q
Equal: false
Not equal: true
Greater: false
Less: true
Greater or equal: false
Less or equal: true

逻辑运算符

逻辑运算符用于组合布尔值。

以下示例演示了 Rust 中的逻辑运算符。

main.rs
fn main() {
    let a = true;
    let b = false;

    println!("And: {}", a && b);
    println!("Or: {}", a || b);
    println!("Not: {}", !a);
}

程序定义了两个布尔变量。逻辑运算符应用于这些变量。

println!("And: {}", a && b);

逻辑与运算符。

println!("Or: {}", a || b);

逻辑或运算符。

println!("Not: {}", !a);

逻辑非运算符。

$ cargo run -q
And: false
Or: true
Not: false

复合赋值运算符

复合赋值运算符用于执行算术和赋值运算。

以下示例演示了 Rust 中的复合赋值运算符。

main.rs
fn main() {
    let mut a = 10;

    a += 5;
    println!("Addition: {}", a);

    a -= 5;
    println!("Subtraction: {}", a);

    a *= 5;
    println!("Multiplication: {}", a);

    a /= 5;
    println!("Division: {}", a);

    a %= 5;
    println!("Modulo: {}", a);
}

程序定义了一个可变的整数变量。复合赋值运算符应用于该变量。

a += 5;

加法复合赋值运算符。

a -= 5;

减法复合赋值运算符。

a *= 5;

乘法复合赋值运算符。

a /= 5;

除法复合赋值运算符。

a %= 5;

模复合赋值运算符。

$ cargo run -q
Addition: 15
Subtraction: 10
Multiplication: 50
Division: 10
Modulo: 0

表达式

表达式是由值、变量和运算符组成的,用于计算一个值。

以下示例演示了 Rust 中的表达式。

main.rs
fn main() {
    let x = 10;
    let y = 20;

    let result = if x < y { x } else { y };

    println!("Result: {}", result);
}

程序定义了两个整数变量。使用 if 表达式来评估这些变量。

let result = if x < y { x } else { y };

if 表达式评估条件并返回变量 xy 的值。

$ cargo run -q
Result: 10

作者

我叫 Jan Bodnar,是一名充满激情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 Rust 教程