陣列
陣列是堆疊分配的,靜態大小的單個物件列表。
通常通過在方括號之間包含給定型別的元素列表來建立陣列。陣列的型別用特殊語法表示:[T; N]
其中 T
是其元素的型別,N
是它們的計數,兩者都必須在編譯時知道。
例如,[4u64, 5, 6]
是 [u64; 3]
型別的 3 元素陣列。注:5
和 6
推斷為 u64
型。
例
fn main() {
// Arrays have a fixed size.
// All elements are of the same type.
let array = [1, 2, 3, 4, 5];
// Create an array of 20 elements where all elements are the same.
// The size should be a compile-time constant.
let ones = [1; 20];
// Get the length of an array.
println!("Length of ones: {}", ones.len());
// Access an element of an array.
// Indexing starts at 0.
println!("Second element of array: {}", array[1]);
// Run-time bounds-check.
// This panics with 'index out of bounds: the len is 5 but the index is 5'.
println!("Non existant element of array: {}", array[5]);
}
限制
穩定 Rust 中不支援陣列(或切片)上的模式匹配(請參閱 #23121 和切片模式 )。
Rust 不支援型別級數字的通用性(參見 RFC#1657 )。因此,不可能簡單地為所有陣列(所有大小)實現特徵。因此,標準特徵僅適用於陣列數量有限的陣列(最後檢查,最多 32 個)。支援具有更多元素的陣列,但不實現標準特徵(請參閱文件 )。
這些限制有望在未來取消。