美思 [Rust] 程式設計教學:字串 (String)

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

Rust 字串

Rust 的字串有以下兩種:

  • String 類別是以 UTF8 編碼、可伸縮的字串
  • str 是基礎型別,通常是使用 &str,即指向 str 的參考

另外,Rust 還有字元 (char) 型別,同樣也是以 UTF8 編碼。

建立字串常數時,預設型別是 &str,即指向 str 的參考,但是,若想要使用 String 類別的方法時,可以轉為 String 物件。

對字串進行索引

由於 Rust 字串為 UTF8 字串,其內部長度和字元數不同,不能直接對其進行索引。以下的範例是錯誤的:

本例引發以下錯誤訊息:

如果想要得到單一的字元,需用 chars 方法,會得到走訪字元的迭代器。

字串相接

字串間可以用 +相接,相接的方式是以 String 物件接 &str,如下:

如果要將兩個 String 物件相接,則要將 String 物件取參考,轉為 &str,如下:

格式化字串

Rust 提供數個格式化字串的巨集,包括:

  • format!:將格式化字串轉為 String 物件
  • println!:將格式化字串印到終端機,附帶換行字元
  • print!:將格式化字串印到終端機,但不附加換行字元
  • writeln!:將格式化字串寫入特定的 buffer 物件,附帶換行字元
  • write!:將格式化字串寫入特定的 buffer 物件,但不附帶換行字元

以下實例將錯誤訊息輸出到標準錯誤 (standard error):

以下實例輸出不同的格式化字串:

關於作者

身為資訊領域碩士,美思認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

美思喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,美思將所學寫成文章,放在這個網站上和大家分享。