ZetCode

Rust 变量

最后修改于 2025 年 2 月 19 日

在本文中,我们将展示如何在 Rust 中使用变量。

变量

变量 用于存储值。它是给值的标签。Rust 使用 let 关键字来定义变量。

在 Rust 中,变量默认是不可变的。要创建可变变量,我们使用 mut 关键字。

变量可以持有不同数据类型的值。数据类型是一组值以及对这些值允许的操作。Rust 可以从赋值的右侧推断出数据类型。

简单示例

以下是一个简单的 Rust 变量示例。

main.rs
fn main() {
    let name: &str = "John Doe";
    let age: i32 = 34;
 
    println!("{name} is {age} years old");
}

该程序定义了两个变量。

let name: &str = "John Doe";

此行定义了一个字符串变量。在冒号之后,我们指定变量的数据类型。

let age: i32 = 34;

我们定义了一个整数变量。

println!("{name} is {age} years old");

这两个变量用于构建一条消息,该消息使用 println! 宏打印到控制台。

$ cargo run -q
John Doe is 34 years old

变量类型推断

Rust 可以从赋值的右侧推断出变量的数据类型。

main.rs
fn main() {
    let name = "John Doe";
    let age = 34;

    println!("{name} is {age} years old");
}

在程序中,我们省略了两个变量的数据类型声明。

可变变量

可变变量可以在程序过程中更改。可变变量使用 mut 创建。

main.rs
fn main() {
    let mut name = String::from("John Doe");
    let mut age = 34;

    println!("{name} is {age} years old");

    name = String::from("Roger Roe");
    age = 54;

    println!("{name} is {age} years old");
}

我们定义了两个变量。稍后我们将新值赋给这两个变量。

let mut name = String::from("John Doe");
let mut age = 34;

可变变量前面带有 mut 关键字。

name = String::from("Roger Roe");
age = 54;

我们将新值赋给变量。

λ cargo run -q
John Doe is 34 years old
Roger Roe is 54 years old

函数参数

传递给函数的变量称为参数或实参。

main.rs
fn main() {
    let name = String::from("John Doe");
    let age = 34;

    let msg = build_msg(name, age);
    println!("{msg}");
}

fn build_msg(name: String, age: i32) -> String {

    return format!("{} is {} years old", name, age);
}

在程序中,我们定义了一个 build_msg 函数。它接受两个参数。这些参数用于构建一条消息,该消息将从函数返回。

let name = String::from("John Doe");
let age = 34;

let msg = build_msg(name, age);

我们定义了两个变量并将它们作为函数实参传递。

fn build_msg(name: String, age: i32) -> String {

    return format!("{} is {} years old", name, age);
}

在函数内部,我们有两个变量。这些在函数块中是有效的。

let msg = build_msg(name, age);

build_msg 函数返回生成的字符串。它被赋给 msg 变量。

在本文中,我们学习了 Rust 中的变量。

作者

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