rust数组与切片

在 Rust 中,[1..] 是一种特殊的切片语法(Slice Syntax),表示从数组(或向量等其他数据结构)的索引 1 开始,一直到数组的末尾(包含最后一个元素)的所有元素构成的切片。
它是一种省略了结束索引的范围语法。
 
核心概念:切片(Slice)
[1..] 模式不能直接用于定义数组本身,而是用于创建数组的切片引用。切片是对原始数据(通常在栈或堆上)的一个视图,它本身是一个指向数据开始位置的指针和长度的组合
 
示例用法
假设你有一个数组 arr
let arr = [10, 20, 30, 40, 50];
// 索引: 0   1   2   3   4
你可以这样使用 [1..] 来创建一个切片:
fn main() {
    let arr = [10, 20, 30, 40, 50];

    // 从索引 1 开始,直到结束
    let slice = &arr[1..]; 

    println!("原始数组: {:?}", arr);
    println!("切片: {:?}", slice); 
    // 输出:切片: [20, 30, 40, 50]

    println!("切片的长度: {}", slice.len()); // 输出:4
}
语法详解
在 Rust 中,范围语法有多种形式:
 
语法名称描述示例结果
&arr[A..B] 范围(Range) 从索引 A 到 B(不包含 B) &arr[1..4] [20, 30, 40]
&arr[A..=B] 包含范围(Inclusive Range) 从索引 A 到 B(包含 B) &arr[1..=4] [20, 30, 40, 50]
&arr[A..] 从索引开始到结束 从索引 A 开始到数组末尾 &arr[1..] [20, 30, 40, 50]
&arr[..B] 从开始到索引前 从数组开始到索引 B(不包含 B) &arr[..3] [10, 20, 30]
&arr[..] 全范围 整个数组的切片 &arr[..] [10, 20, 30, 40, 50]
 
总结
[1..] 表示从索引 1 开始(第二个元素)到最后的所有元素的引用切片。它是一个方便的语法糖,用于快速获取一个数组的“尾部”。
 ..也可以用for循环,struct结构体成员变量初始化等。
posted @ 2025-11-26 11:03  PKICA  阅读(12)  评论(0)    收藏  举报