Types of &str

Ada lebih dari satu jenis &str. Kita punya:

  • String literals: Anda membuat jenis ini di saat Anda menuliskan let my_str = "I am a &str". Mereka akan hidup sampai akhir program, karena mereka ditulis langsung dalam bentuk binary. String literal memiliki type &'static str. ' itu adalah lifetime, dan string literal memiliki lifetime yang disebut static.
  • Borrowed str: Ini adalah &str reguler yang tidak menggunakan lifetime static. Jika Anda membuat sebuah String dan mendapatkan reference dari String tersebut, Rust akan mengkonversinya menjadi &str jika Anda memerlukannya. Contohnya:
fn prints_str(my_str: &str) { // ia bisa menggunakan &String seperti &str
    println!("{}", my_str);
}

fn main() {
    let my_string = String::from("I am a string");
    prints_str(&my_string); // kita memberikan function prints_str sebuah &String
}

Jadi, apa itu lifetime? Kita akan mempelajarinya sekarang.