【Rust】数组
数组
1. 显示初始化
let a: [i32; 3] = [1, 2, 3]; // 类型:[i32; 3]
- [i32; 3] 表示:长度为 3 的 i32 数组。
- 元素数量固定,不能动态改变。
2. 使用重复值初始化
let b = [0; 5]; // 等价于 [0, 0, 0, 0, 0]
- 表示:创建一个长度为 5 的数组,每个元素是 0。
- 自动推导类型为 [i32; 5]。
let array = [1u8, 2, 3, 4];
// 等价于:
// let array: [u8; 4] = [1u8, 2u8, 3u8, 4u8];
- 1u8 是字面量 1 被显式标注为 u8 类型(8 位无符号整数,范围是 0..=255)。
- 后面的 2, 3, 4 没有显式写类型,但因为第一个元素是 u8,编译器会推导出整个数组都是 u8。
3.访问元素:
let a = [10, 20, 30];
println!("{}", a[1]); // 输出 20
类型 | 是否固定长度 | 分配位置 | 用途 |
[T; N] | 固定长度 | 栈 | 小数据,性能好 |
Vec<T> | 动态增长 | 堆 | 动态数据 |