String di Rust (String vs &str)
Penjelasan
Rust punya dua tipe untuk teks yang sering membingungkan pemula: String (dimiliki/owned, disimpan di heap, bisa tumbuh ukurannya, dibuat dengan String::from() atau .to_string()) dan &str ("string slice", sekadar reference/pinjaman ke teks yang sudah ada, mis. string literal "halo" secara default bertipe &str).
Contoh Konsep
fn main() {
let literal: &str = "CompileDaily"; // &str, string literal
let dimiliki: String = String::from("CompileDaily"); // String, owned
println!("{}", literal.len()); // 12
println!("{}", dimiliki.len()); // 12
let gabungan = dimiliki + " Study"; // String bisa digabung dengan +
println!("{}", gabungan);
}
Praktikum
Buat variabel let email: &str = "[email protected]". Pakai split('@') untuk memisahkan bagian sebelum dan sesudah "@", lalu tampilkan masing-masing bagian.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Aturan praktis buat pemula: pakai &str untuk PARAMETER fungsi (lebih fleksibel, menerima String maupun literal), dan String untuk data yang benar-benar perlu kamu MILIKI/ubah-ubah, mis. field di dalam struct.