探索 Rust 原始类型

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,你将了解 Rust 提供的各种原始类型,包括有符号和无符号整数、浮点数、Unicode 标量值、布尔值以及单元类型等标量类型。你还将探索数组和元组等复合类型,并学习如何用各自的类型注释变量,或者让 Rust 根据上下文推断类型。

注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用 main.rs,并通过 rustc main.rs &&./main 进行编译和运行。

原始类型

Rust 提供了多种“原始类型”。示例如下:

标量类型

  • 有符号整数:i8i16i32i64i128isize(指针大小)
  • 无符号整数:u8u16u32u64u128usize(指针大小)
  • 浮点数:f32f64
  • char Unicode 标量值,如 'a''α''∞'(每个占 4 字节)
  • bool,值为 truefalse
  • 单元类型 (),其唯一可能的值是一个空元组:()

尽管单元类型的值是一个元组,但它不被视为复合类型,因为它不包含多个值。

复合类型

  • 数组,如 [1, 2, 3]
  • 元组,如 (1, true)

变量始终可以进行“类型注释”。数字还可以通过“后缀”或“默认方式”进行注释。整数默认类型为 i32,浮点数默认类型为 f64。请注意,Rust 也可以从上下文推断类型。

fn main() {
    // 变量可以进行类型注释。
    let logical: bool = true;

    let a_float: f64 = 1.0;  // 常规注释
    let an_integer   = 5i32; // 后缀注释

    // 或者使用默认类型。
    let default_float   = 3.0; // `f64`
    let default_integer = 7;   // `i32`

    // 类型也可以从上下文推断。
    let mut inferred_type = 12; // 从另一行推断出类型为 i64。
    inferred_type = 4294967296i64;

    // 可变变量的值可以更改。
    let mut mutable = 12; // 可变 `i32`
    mutable = 21;

    // 错误!变量的类型不能更改。
    mutable = true;

    // 变量可以通过遮蔽进行覆盖。
    let mutable = true;
}

总结

恭喜你!你已完成“原始类型”实验。你可以在 LabEx 中练习更多实验以提升技能。