String vs. &str
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 54 dari 66.
Rust memiliki dua tipe string utama yang memiliki kegunaan berbeda: String dan &str. Memahami perbedaan keduanya sangat penting agar kamu dapat bekerja dengan teks di Rust secara efektif.
String adalah string yang dimiliki dan dialokasikan di heap, yang bisa kamu ubah. Saat kamu membuat String, programmu memiliki data tersebut dan bertanggung jawab untuk mengelola memorinya. Kamu bisa memperbesar, memperkecil, dan mengubah isinya karena string tersebut bisa diubah saat dideklarasikan dengan mut.
let mut my_string = String::from("Hello");
my_string.push_str(" World"); // Ini berfungsi karena String memiliki kepemilikan dan dapat diubahSebaliknya, &str (dilafalkan "string slice") adalah tampilan yang dipinjam dan tidak dapat diubah dari data string. Tipe ini tidak memiliki data yang ditunjuknya, tipe ini hanya berupa referensi ke konten string yang ada di tempat lain. Literal string seperti "Hello" sebenarnya bertipe &str.
let my_slice: &str = "Hello World"; // Ini adalah slice dari stringBayangkan String seperti memiliki buku yang bisa kamu tulisi dan ubah, sedangkan &str seperti meminjam buku milik orang lain. Kamu bisa membacanya, tetapi tidak bisa mengubahnya. Perbedaan ini merupakan dasar sistem kepemilikan Rust dan membantu memastikan keamanan memori.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode Akhir6Menangani Ketiadaan dengan 'Option'
Apa itu 'Option'?Menggunakan 'match' dengan 'Option'is_some() dan is_none()Membuka bungkus 'Option'Metode expectMemberikan Nilai Default: unwrap_orRangkuman: Menemukan Elemen9Potongan String dan Lainnya
String vs. &strMembuat Potongan StringPotongan sebagai Parameter FungsiPotongan LainnyaRangkuman: Temukan Kata PertamaLatihan sendiri: Compiler Rust online