Slice 类型

[TOC]

1. 基本使用

除了基本类型,还有一个没有所有权的类型 slice。切片是集合中一段连续的元素序列,概念与go相似,基于原有的数组进行构建。作为连续序列的一个动态的视图。

1.1 String slice

可以使用下标来定义一个字符串的引用,let t = &s[0..5],类似于python中的[0:5]语法。start...end不包含end。如果需要包含,可以使用let t = &s[1..=6]

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

let len = s.len();

let slice = &s[3..len];
let slice = &s[3..];

string slice 类型实际上就是字符串字面值类型str,对于一个定义的一个字符串字面值

let s = "test";

字符串字面值存储在二进制文件中,s类型是&str,是一个指向二进制程序的特定位置的slice,这也解释了字符串字面值为什么不可变

1.2 函数参数使用 &str

对于函数签名可以使用string类型的都可以使用字符串字面值进行代替。可以对String &str使用相同的函数。如果有一个slice可以直接传入,如果是Strings可以传入对应的slice。

Last updated

Was this helpful?