Rust 程式設計視訊教程對應講解內容-slice

linghuyichong發表於2019-12-19

頭條地址:https://www.ixigua.com/i676544267458235648...
B站地址:https://www.bilibili.com/video/av78062009?...
網易雲課堂地址:https://study.163.com/course/introduction....

1、字串slice
字串 slice(string slice)是 String 中一部分值的引用。例子:

let s = String::from("hello world");
let hello = &s[0..5]; //包含下標0,不包含5
let world = &s[6..11];//包含下標6,不包含下標11
let hello = &s[0..=4];//包含下標4
let world = &s[6..=10];//包含下標10

也可以寫為:

let s1 = &s[2..];
let s2 = &s[..3];

注意:字串 slice range 的索引必須位於有效的 UTF-8 字元邊界內,如果嘗試從一個多位元組字元的中間位置建立字串 slice,則程式將會因錯誤而退出。出於介紹字串 slice 的目的,本部分假設只使用 ASCII 字符集。

2、字面值就是slice
字串字面值被儲存在二進位制檔案中嗎。

let s = "Hello, world!";

這裡 s 的型別是 &str:它是一個指向二進位制程式特定位置的 slice。這也就是為什麼字串字面值是不可變的;&str 是一個不可變引用。

3、其它型別的slice

let a = [1, 2, 3, 4, 5];
let slice = &a[1..3];

令狐一衝

相關文章