0Pricing
Learn Rust Coding · Pelajaran

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:

  • &str ke String: .to_string() atau String::from.
  • String ke &str: &s atau s.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::from atau to_string(); perbesar dengan push_str.
  • Utamakan &str untuk 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

  1. Vektor
  2. String dan &str
  3. HashMaps
  4. Melakukan Iterasi pada Koleksi
← Kembali ke Learn Rust Coding