String dan &str
Teks yang dimiliki dan dipinjam
String dan &str adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.
Dua Tipe String
Rust memiliki dua tipe teks utama:
String— string yang dimiliki dan dapat diperbesar.&str— potongan string yang dipinjam, yaitu tampilan ke dalam teks.
fn main() {
let owned: String = String::from("hello");
let borrowed: &str = "world";
println!("{} {}", owned, borrowed);
}Literal String adalah &str
Saat Anda menulis teks dalam tanda kutip ganda, Anda mendapatkan &str. Teks ini tetap dan disimpan dalam biner program.
fn main() {
let greeting = "Hi there"; // type is &str
println!("{}", greeting);
}Membuat String
Buat String yang dimiliki dengan String::from atau metode .to_string().
fn main() {
let a = String::from("abc");
let b = "xyz".to_string();
println!("{} {}", a, b);
}Memperbesar String
Karena String dimiliki dan dapat diperbesar, Anda dapat menambahkan teks ke dalamnya dengan push_str dan push.
fn main() {
let mut s = String::from("Hello");
s.push_str(", ");
s.push_str("Rust");
s.push('!');
println!("{}", s);
}Penggabungan
Gabungkan string menggunakan operator + atau makro format!. format! tidak menggunakan input-nya.
fn main() {
let first = String::from("Hello");
let second = String::from("World");
let joined = format!("{} {}", first, second);
println!("{}", joined);
}Meminjam String sebagai &str
String dapat dipinjam sebagai &str secara otomatis. Dengan begitu, fungsi dapat menerima kedua tipe tersebut.
fn print_text(text: &str) {
println!("text: {}", text);
}
fn main() {
let owned = String::from("owned");
print_text(&owned);
print_text("literal");
}Mengapa Memilih Parameter &str
Fungsi biasanya menerima &str, bukan String. Ini lebih fleksibel: pemanggil dapat meneruskan string yang dimiliki, literal, atau potongan string.
fn shout(s: &str) -> String {
s.to_uppercase()
}
fn main() {
println!("{}", shout("quiet"));
}Panjang dalam Byte
Metode len() mengembalikan panjang dalam byte, bukan karakter. Teks ASCII memiliki satu byte untuk setiap karakter.
fn main() {
let s = "hello";
println!("{} bytes", s.len());
}Memeriksa Isi
Metode pembacaan yang berguna meliputi contains, starts_with, dan is_empty.
fn main() {
let s = "hello world";
println!("{}", s.contains("world"));
println!("{}", s.starts_with("hello"));
}Perbedaan Kepemilikan
String memiliki datanya di heap dan bertanggung jawab untuk membebaskannya. &str hanya meminjam data yang sudah ada dan tidak memiliki apa pun.
fn main() {
let owned = String::from("data");
let view: &str = &owned[0..2];
println!("owned {} view {}", owned, view);
}Mengonversi di antara Keduanya
Lakukan konversi dua arah:
&strkeString:.to_string()atauString::from.Stringke&str:&sataus.as_str().
fn main() {
let s = String::from("convert");
let slice: &str = s.as_str();
let back: String = slice.to_string();
println!("{} {}", slice, back);
}Pemeriksaan Singkat
Ingat kembali perbedaan antara kedua tipe teks tersebut.
Ringkasan
String dalam Rust:
String— dimiliki, dapat diperbesar, dan dialokasikan di heap.&str— potongan atau tampilan yang dipinjam, seperti yang digunakan literal.- Buat dengan
String::fromatauto_string(); perbesar denganpush_str. - Utamakan
&struntuk parameter fungsi.
fn main() {
let mut msg = String::from("Rust");
msg.push_str(" rocks");
let view: &str = &msg;
println!("{} ({} bytes)", view, view.len());
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “String dan &str” gratis?
Ya — teks lengkap “String dan &str” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “String dan &str”?
Teks yang dimiliki dan dipinjam Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?
Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “String dan &str” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?
Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Vektor
- String dan &str
- HashMaps
- Melakukan Iterasi pada Koleksi