数组

数组是堆栈分配的,静态大小的单个对象列表。

通常通过在方括号之间包含给定类型的元素列表来创建数组。数组的类型用特殊语法表示:[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 个)。支持具有更多元素的数组,但不实现标准特征(请参阅文档 )。

这些限制有望在未来取消。