Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English Original

3. Rust 内建类型 🟢

基本类型

Rust 提供了各种内建类型,C/C++ 开发者应该对这些类型感到很熟悉。

类别类型示例
有符号整数i8, i16, i32, i64, i128, isize-1, 42, 1_000_000
无符号整数u8, u16, u32, u64, u128, usize0, 42u32, 42u64
浮点数f32, f640.0, 3.14159
布尔值booltrue, false
字符char'a', '😊' (4 字节 Unicode)

变量与可变性

在 Rust 中,变量 默认是不可变的。若要使变量可变,必须显式地使用 mut 关键字。

fn main() {
    let x = 5;      // x 是不可变的
    // x = 6;       // ❌ 编译错误

    let mut y = 5;  // y 是可变的
    y = 6;          // ✅ 正确
}

类型标注与推断

Rust 具备强大的类型推断能力,但也允许进行显式的类型标注。

fn main() {
    let a: i32 = 42;    // 显式标注
    let b = 42u32;     // 后缀标注
    let c = 42;        // 根据使用情况推断(默认为 i32)
}

函数签名

与变量不同,函数参数和返回值 必须 具有显式的类型标注。

#![allow(unused)]
fn main() {
fn add(x: i32, y: i32) -> i32 {
    x + y // 没有分号 = 返回表达式
}
}

变量遮蔽 (Shadowing)

Rust 允许你声明一个与之前变量同名的新变量,从而实际上“遮蔽”了原始变量。这在不创建新名称的情况下更改变量的类型或可变性时非常有用。

fn main() {
    let x = 5;
    let x = x + 1;   // 遮蔽:第一个 'x' 此时已隐藏
    let x = "hello"; // 你甚至可以借此更改类型
}