Halo teman-teman semuanya, setelah kita mempelajari tentang borrowing dan references di artikel sebelumnya, kali ini kita akan melanjutkan dengan topik yang sangat sering digunakan dalam pemrograman sehari-hari, yaitu slice dan string di Rust.
Dalam Rust, string adalah salah satu tipe data yang sangat penting karena hampir semua program pasti berurusan dengan teks. Namun berbeda dengan bahasa lain yang biasanya hanya mengenal satu tipe string, di Rust ada beberapa tipe yang perlu kita pahami, khususnya String dan &str.
Selain itu, Rust juga memiliki fitur slice, yang memungkinkan kita mengambil sebagian data dari sebuah koleksi tanpa harus memindahkan atau menyalin seluruh nilainya.
Memahami slice dan string dengan baik akan membuat kita lebih percaya diri ketika menulis program Rust, terutama saat bekerja dengan teks dan koleksi. Mari kita bahas satu per satu.
String Slice (&str)
String slice adalah referensi ke bagian dari string. Tipe ini biasanya digunakan untuk data teks yang sifatnya tidak perlu diubah. String slice ditulis dengan &str.
fn main() {
let s: &str = "Hello, Rust!";
println!("{}", s);
}
String slice seperti "Hello, Rust!" biasanya disimpan di memory read-only dan tidak bisa diubah.
Kita juga bisa mengambil sebagian string dengan slice:
fn main() {
let s = String::from("Rustacean");
let bagian = &s[0..4]; // mengambil karakter dari index 0 sampai 3
println!("Slice: {}", bagian);
}
Pada contoh di atas, &s[0..4] akan menghasilkan "Rust".
String (String)
Tipe String adalah string yang dimiliki (owned string) dan disimpan di heap. String bisa berubah panjangnya (mutable).
fn main() {
let mut s = String::from("Hello");
s.push_str(", World!");
println!("{}", s);
}
Dengan String, kita bisa menambahkan teks baru menggunakan method seperti .push_str atau .push.
Perbedaan String dan &str
&stradalah referensi (borrowing), biasanya digunakan untuk data teks yang tidak berubah.Stringadalah tipe owned, disimpan di heap, dan bisa dimodifikasi.
Fungsi sering menggunakan &str sebagai parameter agar lebih fleksibel.
fn greet(name: &str) {
println!("Halo, {}!", name);
}
fn main() {
let nama = String::from("Andi");
greet(&nama); // kirim &String
greet("Budi"); // kirim string literal
}
Fungsi greet bisa menerima baik String maupun string literal karena keduanya bisa direferensikan sebagai &str.
Slice pada Array
Selain string, slice juga bisa digunakan pada array untuk mengambil sebagian data.
fn main() {
let angka = [1, 2, 3, 4, 5];
let potongan = &angka[1..4]; // ambil elemen index 1 sampai 3
for n in potongan {
println!("{}", n);
}
}
Outputnya adalah:
2
3
4
Dengan slice, kita bisa mengambil bagian dari sebuah array tanpa harus menyalin data baru.
Kesimpulan
Pada artikel ini kita sudah membahas tentang slice dan string di Rust. Kita mengenal &str sebagai string slice yang immutable dan String sebagai owned string yang bisa dimodifikasi. Kita juga melihat bagaimana slice bisa digunakan untuk mengambil sebagian data dari string maupun array.
Pada artikel berikutnya, kita akan membahas tentang Struct di Rust, yaitu cara mendefinisikan tipe data buatan sendiri yang bisa menyimpan beberapa field sekaligus.
Terima Kasih
Artikel ini dibaca sebanyak 1.741 kali
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
class="lazy w-full h-auto rounded-xl border border-white dark:border-neutral-700/80 transition-opacity duration-500"
loading="lazy"
/>
SAWERIA
Memuat komentar...