陣列

陣列是堆疊分配的,靜態大小的單個物件列表。

通常通過在方括號之間包含給定型別的元素列表來建立陣列。陣列的型別用特殊語法表示:[T; N] 其中 T 是其元素的型別,N 是它們的計數,兩者都必須在編譯時知道。

例如,[4u64, 5, 6][u64; 3] 型別的 3 元素陣列。注:56 推斷為 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 個)。支援具有更多元素的陣列,但不實現標準特徵(請參閱文件 )。

這些限制有望在未來取消。