Rust 编程中的切片

Rust 中的切片是具有相同数据类型 T 的元素的集合,但与数组不同的是,它们的长度在编译时不必知道。

在 Rust 中,切片是一个双字对象,其中第一个字实际上是指向数据的指针,第二个字只是切片的长度。

切片比数组更安全,并且它们允许有效访问数组而无需复制。切片是从数组字符串创建的。它们可以是可变的,也可以不是。切片通常是指数组或字符串的切片。

示例

fn main() {

   let xs: [i32; 5] = [1, 2, 3, 4, 5];

   let slice = &xs[1..5];

   println!("first element of the slice: {}", slice[0]);

   println!("the slice has {} elements", slice.len());

}

在上面的例子中,我们正在获取一个数组的切片,当我们对数组进行切片时,我们必须在 [] 括号内提供开始和结束索引,以指定我们想要在切片中的数组元素。

输出结果

first element of the slice: 2

the slice has 4 elements

一段字符串

fn main() {

   let str= String::from("嘿图茨!!");

   let hello = &str[0..5];

   let hello=&str[..5];

   println!("the hello contains {}", hello);

}

如果我们只想考虑从第一个元素切片,那么我们可以避免第一个整数,只需在 [] 括号内键入结束索引。

输出结果

the hello contains Hey T

示例

但是,如果我们想从一个索引切片到字符串的末尾,我们可以这样做。

fn main() {

   let str= String::from("嘿图茨!!");

   let hello = &str[3..];

   let hello=&str[3..];

   println!("the hello contains {}", hello);

}

输出结果
the hello contains Tuts!!

以上是 Rust 编程中的切片 的全部内容, 来源链接: utcz.com/z/331802.html

回到顶部