&str 的種類
&str
的種類不止一個。我們有:
- 字串字面常數 (String literal):當你寫
let my_str = "I am a &str"
的時候,就會產生這種字串。它們在整個程式中持續存在,因為它們是直接寫進二進位檔案中的,它們的型別是&'static str
。'
是表示它的生命週期 (lifetime),字串字面常數有著稱為static
的生命週期。 - 借用字串 (Borrowed str):這是沒有
static
生命週期的&str
的常規形式。如果你建立String
並得到了它的參考,Rust 會在你需要它時把它轉換為&str
。例如:
fn prints_str(my_str: &str) { // 可以像 &str 般使用 &String println!("{}", my_str); } fn main() { let my_string = String::from("I am a string"); prints_str(&my_string); // 我們傳給 prints_str 的型別是 &String }
那什麼是生命週期呢?我們馬上會學到。