rust筆記4 slice型別

2021-09-26 11:07:06 字數 775 閱讀 1069

先給出個例子:

fn main() \n{}\n{}\n{}\n{}", slice0, slice1, slice2, slice3, slice4);

}

輸出結果:

hello

hello

world !

world !

hello world !

切片的區間是左閉右開,而且切片是引用型別的,這相當於位址的乙個範圍,所以我們使用&s的方式來表示。

字串相當於乙個切片,比如:

let s = "hello world !";
s相當於乙個&s[..]的型別。

切片預設是不可變的。一般來說處理字串的函式,可以寫成切片的型別,rust中用&str表示切片型別,比如:

fn main() ", foo(s, 1, 8));

let s2 = string::from("i am cat, not a cat !");

println!("{}", foo(&s2, 0, 10));

}fn foo(s: &str, start: usize, end: usize) -> &str

陣列也可以進行切片操作,**例項:

fn main() ", num);

}}

Rust學習筆記2 3 2 復合型別

復合型別可以將多個值組合成乙個型別。rust有兩個原生的復合型別 元組 tuple 和陣列 array 元組是乙個將多個其他型別的值組合進乙個復合型別的主要方式。元組長度固定 一旦宣告,其長度不會增大或縮小。我們使用包含在圓括號中的逗號分隔的值列表來建立乙個元組。元組中的每乙個位置都有乙個型別,而且...

投稿 刀哥 Rust學習筆記 4

toc rust 學習心得 4 async await 如何工作 2019年底rust正式支援 async await語法,完成了rust協程的最後一塊拼圖,從而非同步 可以用一種類似於go的簡潔方式來書寫。然而對於程式設計師來講,還是很有必要理解async await的實現原理。簡單地說,asyn...

rust筆記6 列舉型別

rust的列舉型別相對於c 來說,有更強大的表現能力,先給出最基本的定義方式 enum ip fn main 列舉型別可以有不同的資料型別,並儲存對應的資料,給出 例項 enum ip fn main 列舉型別可以有自己的impl塊,例項 enum message write string chan...