Rust 新手程式設計師/字串
使用雙引號 "" 在某些文本週圍建立的字串,例如我們在開始時建立的 "Hello world!",儲存在編譯時建立的程式中。這意味著在執行程式時很容易找到和使用它。但是,這意味著我們在程式執行時無法更改它們,因為程式中的所有記憶體都以特定方式佈局。另外,字串和字元可能非常複雜。這是因為有很多事情要處理;世界不僅僅是英文字元!有很多不同的語言,很多語言有不同的字母表。有表情符號和其他特殊字元。儲存這些不同字元的不同格式將使用不同的位元組數。如果你使用英語,大多數情況下你會使用稱為 UTF-8 的標準,該標準對大多數常見的英文字元使用 8 位(一個位元組)。
在 Rust 中,有兩種字串型別來表示這種行為。有一種原始型別 'str',它只是字串的起點和長度。這意味著對 str 的引用,或 &str,可以是對儲存在程式中的字串的引用。另一種字串型別是 String,它將字串儲存為位元組向量。由於它是一個向量,我們可以修改和更改字串。此外,由於向量具有起點和長度,我們可以輕鬆地將 String 轉換為 &str,儘管以其他方式轉換需要我們克隆資料。
首先,讓我們嘗試建立一個接收兩個 String 並返回一個組合後的 String 的函式
fn combine(string1: String, string2: String) -> String {
let mut string = string1;
string.push_str(&string2);
return string;
}
push_str() 函式是什麼?我們必須記住我們想要使用的每個函式嗎?不,這就是文件的作用。文件提供了一種查詢結構、函式(包括型別)以及它們的功能和使用方法的書面解釋的方式。push_str 函式的文件可以在此處找到:https://doc.rust-lang.org/std/string/struct.String.html#method.push_str。如果我們閱讀它,我們會看到:
pub fn push_str(&mut self, string: &str)
Appends a given string slice onto the end of this String.
pub 表示它是公共的,所以我們可以使用它。&mut self 是 'self: &mut String' 的簡寫,因此它使用 self 作為對 String 的可變引用,並且它接收型別為 &str 的字串。由於它是一個引用,我們可以使用 &string2 作為 &str,因為它可以輕鬆地取消引用為一個。