数组是一种数据结构,用于包含相同类型T的对象。这些对象存储在连续的内存位置中。
在Rust中,通过使用 []括号创建数组。重要的是必须在编译时知道数组的大小。而且,与Java和C ++等其他语言不同,数组的长度是Rust中其类型的一部分。
[T; length].
这意味着签名为[i32,4]的数组与签名为[i32,5]的数组不同。
数组本质上是不可变的,我们可以通过多种方式创建此类数组。
我们可以创建数组而无需提供任何特定的数据类型。编译器将自行解释类型。
fn main() { let arr = [1,2,3]; println!("数组是 {:?}", arr); println!("The 数组的长度为: {}", arr.len()); }
数组是 [1, 2, 3] The 数组的长度为: 3
我们可以定义数组内部所需的数据类型以及数组的大小,如下所示:
fn main() { let arr:[i32;4] = [1,2,3,4]; println!("数组是 {:?}", arr); println!("数组的长度为: {}", arr.len()); }
数组是 [1, 2, 3, 4] 数组的长度为: 4
如果我们希望数组包含单个默认值,则可以如下所示进行操作:
fn main() { let arr:[i32;5] = [1;5]; println!("数组是: {:?}", arr); println!("数组的长度为: {}", arr.len()); }
数组是: [1, 1, 1, 1, 1] 数组的长度为: 5
我们还可以在Rust中创建一个可变数组。考虑下面显示的示例:
fn main() { let mut arr:[i32;3] = [1,2,3]; println!("原始数组: {:?}",arr); arr[1] = 0; arr[2] = 100; println!("更改的数组: {:?}",arr); }
输出结果
原始数组: [1, 2, 3] 更改的数组: [1, 0, 100]