简介
在本实验中,你将了解 Rust 提供的各种原始类型,包括有符号和无符号整数、浮点数、Unicode 标量值、布尔值以及单元类型等标量类型。你还将探索数组和元组等复合类型,并学习如何用各自的类型注释变量,或者让 Rust 根据上下文推断类型。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
在本实验中,你将了解 Rust 提供的各种原始类型,包括有符号和无符号整数、浮点数、Unicode 标量值、布尔值以及单元类型等标量类型。你还将探索数组和元组等复合类型,并学习如何用各自的类型注释变量,或者让 Rust 根据上下文推断类型。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
Rust 提供了多种“原始类型”。示例如下:
i8、i16、i32、i64、i128 和 isize(指针大小)u8、u16、u32、u64、u128 和 usize(指针大小)f32、f64char Unicode 标量值,如 'a'、'α' 和 '∞'(每个占 4 字节)bool,值为 true 或 false(),其唯一可能的值是一个空元组:()尽管单元类型的值是一个元组,但它不被视为复合类型,因为它不包含多个值。
[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 中练习更多实验以提升技能。