Keyword let

source ·
Expand description

将值绑定到变量。

let 关键字的主要用途是在 let 语句中,该语句用于将一组新变量引入到当前的作用域中,如模式所示。

let thing1: i32 = 100;
let thing2 = 200 + thing1;

let mut changing_thing = true;
changing_thing = false;

let (part1, part2) = ("first", "second");

struct Example {
    a: bool,
    b: u64,
}

let Example { a, b: _ } = Example {
    a: true,
    b: 10004,
};
assert!(a);
Run

模式通常是单个变量,这意味着不进行模式匹配,并且给定的表达式已绑定到该变量。 除此之外,鉴于 let 绑定是详尽无遗的,因此可以根据需要将其复杂化。 有关模式匹配的更多信息,请参见 Rust 书。 以后可以选择提供模式的类型,但是如果可能的话,编译器会自动推断出是否留空。

Rust 中的变量默认情况下是不可变的,并且要求将 mut 关键字设置为可变。

可以使用相同的名称定义多个变量,称为阴影。 除了无法在阴影点之外直接访问它之外,这不会以任何方式影响原始变量。 它继续保留在作用域中,只有在它离开离开作用域时才被丢弃。 带阴影的变量不需要与带阴影的变量具有相同的类型。

let shadowing_example = true;
let shadowing_example = 123.4;
let shadowing_example = shadowing_example as u32;
let mut shadowing_example = format!("cool! {shadowing_example}");
shadowing_example += " something else!"; // 不遮蔽
Run

let 关键字使用的其他位置包括 if let 表达式形式的 if。 如果匹配的模式不是穷举的 (例如枚举),则它们很有用。 while let 也存在,它使用模式匹配对值进行循环,直到该模式无法匹配为止。

有关 let 关键字的更多信息,请参见 Rust 书Reference