模块 1 · 第 2 课(共 2)课程中的2/14~10 min
模块课程(2/2)
原始类型
Rust 是一种静态类型语言,这意味着它必须在编译时知道所有变量的类型。通常,编译器可以根据分配的值推断类型,但有时手动指定它是必要的或有帮助的。
Rust 中的基本类型分为两大类:标量(单个值)和复合(值组)。
标量类型
标量类型表示单个值。 Rust 有四种基本标量类型:
- 整数:整数。它们可以是有符号的(
i8、i16、i32、i64、i128、isize)或无符号(u8、u16、u32、u64、u128、usize)。默认类型是i32。 - 浮点:带有小数点的数字。它们可以是
f32或f64(双精度,默认)。 - 布尔值:用
true或false(类型bool)表示逻辑真值。 - 字符:用单引号括起来的单个 Unicode 标量值(类型
char),例如'a'、'ℤ'或表情符号'😻'。
显式类型注释的示例:
Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';化合物类型
复合类型可以将多个值分组为一个类型。 Rust 有两种主要的原始复合类型:
元组
元组 将不同类型的值分组到固定大小的集合中:
Rust
let person: (String, i32) = (String::from("Alice"), 30);
// Destructuring to extract values
let (name, age) = person;
// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;数组(固定大小的列表)
数组将多个相同类型的元素分组到存储在堆栈上的固定大小的集合中:
Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];如果您尝试访问数组边界之外的索引(例如 numbers[10]),Rust 将在运行时立即崩溃(恐慌),而不是允许未经授权的内存访问。
比较
| 特色 | 元组 | 数组 |
|---|---|---|
| 元素类型 | 可以不同 | 一定是一样的 |
| 尺寸 | 固定 | 固定 |
| 访问 | 通过点索引(例如,.0) | 方括号(例如,[0]) |
自己尝试一下
锻炼#rust.m1.l2.e1
尝试:0加载中...
声明一个名为 stats 的元组,其中包含年龄 30(整数)和分数 95.5(浮点)。接下来,通过使用索引直接访问元组的第二个元素,将分数打印到屏幕上。
正在加载编辑器...
显示提示
使用“let stats = (30, 95.5);”创建元组。使用“println!”宏中的“stats.1”访问第二个元素。
3 次尝试后可用的解决方案
锻炼#rust.m1.l2.e2
尝试:0加载中...
声明一个名为numbers 的数组,其中包含从1 到5 的整数值。使用println! 将数组的第三个元素(索引2)打印到屏幕上。
正在加载编辑器...
显示提示
使用“let number = [1, 2, 3, 4, 5];”声明数组,并通过使用“[2]”索引来访问第三个元素。
3 次尝试后可用的解决方案
锻炼#rust.m1.l2.e3
尝试:0加载中...
给定元组“let point = (10, 20);”,使用解构将值提取到名为“x”和“y”的两个变量中。然后,打印“x”和“y”的总和。
正在加载编辑器...
显示提示
使用语法“let (x, y) = point;”来解构元组,然后对“println!”中的变量求和。
3 次尝试后可用的解决方案