数组(Arrays)
fn main() {
let mut a: [i8; 10] = [42; 10];
a[5] = 0;
println!("a: {a:?}");
}
This slide should take about 5 minutes.
A value of the array type
[T; N]
holdsN
(a compile-time constant) elements of the same typeT
. Note that the length of the array is part of its type, which means that[u8; 3]
and[u8; 4]
are considered two different types. Slices, which have a size determined at runtime, are covered later.请尝试访问出界数组元素。系统会在运行时检查数组访问。Rust 通常会通过优化消除这些检查,以及使用不安全的 Rust 来避免这些检查。
我们可以使用字面量来为数组赋值。
The
println!
macro asks for the debug implementation with the?
format parameter:{}
gives the default output,{:?}
gives the debug output. Types such as integers and strings implement the default output, but arrays only implement the debug output. This means that we must use debug output here.添加
#
,比如{a:#?}
,会输出“美观打印(pretty printing)” 格式,这种格式可能会更加易读。