rust学习第3章

rust学习第3章

本文字数:249  阅读时长:1分钟

访客数:加载中... | 阅读量:加载中...

切片

什么是切片

切片(Slice) 是 Rust 中一种动态长度的视图,让你可以引用集合中的一部分连续元素,而不需要拷贝数据。

特点说明
不拥有数据只是引用,不分配新内存
动态长度编译时不知道多长(用 & 修饰)
胖指针内存里是 (地址, 长度) 两个值
连续内存元素必须紧挨着存

很啰嗦对不对?

切片 = 引用 + 长度 = 看别人数据的窗口(所以不具有WO权限只有R权限)

实例

1.字符串切片

rust
let s = String::from("hello world");

let slice: &str = &s[0..5];   // "hello"
let slice: &str = &s[6..];    // "world"
let slice: &str = &s[..];     // "hello world"(全部)

左闭右开

2.数组切片

rust
let arr = [10, 20, 30, 40, 50];

let slice: &[i32] = &arr[1..4];  // [20, 30, 40]
let slice: &[i32] = &arr[..2];   // [10, 20]