Destrukturisasi
Struct, enum, tuple
Destrukturisasi adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 4 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.
Apa Itu Destrukturisasi?
Destrukturisasi memecah nilai gabungan menjadi bagian-bagiannya menggunakan pola. Fitur ini bekerja dengan tuple, struct, enum, array, dan lainnya.
Mendestrukturisasi Tuple
Ikat setiap elemen tuple ke variabelnya sendiri dalam satu let.
fn main() {
let point = (3, 7);
let (x, y) = point;
println!("x = {x}, y = {y}");
}Mengabaikan Bagian Tuple
Gunakan _ untuk melewati satu nilai dan .. untuk melewati beberapa nilai.
fn main() {
let data = (1, 2, 3, 4);
let (first, .., last) = data;
println!("{first} ... {last}");
}Mendestrukturisasi Struct
Ambil bidang dari struct berdasarkan namanya. Nama variabel yang diikat dapat sama dengan nama bidang atau diganti.
struct Point {
x: i32,
y: i32,
}
fn main() {
let p = Point { x: 10, y: 20 };
let Point { x, y } = p;
println!("{x}, {y}");
}Mengganti Nama Bidang
Gunakan field: new_name untuk mengikat bidang struct ke nama variabel yang berbeda.
struct Config {
width: u32,
height: u32,
}
fn main() {
let c = Config { width: 800, height: 600 };
let Config { width: w, height: h } = c;
println!("{w} x {h}");
}Mengabaikan Bidang Struct
.. mengabaikan bidang tersisa yang tidak Anda perlukan.
struct User {
name: String,
age: u32,
active: bool,
}
fn main() {
let u = User { name: "Ada".into(), age: 36, active: true };
let User { name, .. } = u;
println!("{name}");
}Mendestrukturisasi Enum
Dalam match, destrukturisasi varian enum untuk mengambil datanya.
enum Event {
Click { x: i32, y: i32 },
Key(char),
}
fn main() {
let e = Event::Click { x: 5, y: 8 };
match e {
Event::Click { x, y } => println!("click at {x},{y}"),
Event::Key(c) => println!("key {c}"),
}
}Destrukturisasi dalam Parameter
Parameter fungsi dapat langsung didestrukturisasi, yang berguna untuk tuple dan struct kecil.
fn distance((x1, y1): (f64, f64), (x2, y2): (f64, f64)) -> f64 {
((x2 - x1).powi(2) + (y2 - y1).powi(2)).sqrt()
}
fn main() {
println!("{}", distance((0.0, 0.0), (3.0, 4.0)));
}Destrukturisasi Bertingkat
Pola dapat ditumpuk secara bebas, sehingga Anda dapat mengakses bagian yang jauh di dalam struktur dalam satu langkah.
struct Line {
start: (i32, i32),
end: (i32, i32),
}
fn main() {
let line = Line { start: (0, 0), end: (4, 5) };
let Line { start: (sx, sy), end: (ex, ey) } = line;
println!("from {sx},{sy} to {ex},{ey}");
}Mendestrukturisasi Array dan Slice
Array dan slice dapat didestrukturisasi, termasuk menangkap bagian tengah dengan ...
fn main() {
let arr = [1, 2, 3, 4, 5];
let [first, .., last] = arr;
println!("first {first}, last {last}");
}Destrukturisasi dalam Perulangan for
Destrukturisasi juga berfungsi dalam perulangan for, sehingga sangat cocok untuk melakukan iterasi pada pasangan nilai.
fn main() {
let pairs = [("a", 1), ("b", 2), ("c", 3)];
for (label, value) in pairs {
println!("{label} = {value}");
}
}Pemeriksaan Singkat
Bagaimana cara mengabaikan bidang struct yang tersisa saat melakukan destrukturisasi?
Ringkasan
Anda telah mempelajari destrukturisasi:
- Memecah tuple, struct, enum, array, dan slice
- Mengganti nama bidang dengan
field: name - Mengabaikan bagian dengan
_dan.. - Melakukan destrukturisasi dalam
let,match, dan parameter fungsi - Pola dapat ditumpuk untuk mengambil data yang lebih dalam
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Destrukturisasi” gratis?
Ya — teks lengkap “Destrukturisasi” 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 “Destrukturisasi”?
Struct, enum, tuple 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 4 dari 4.
Berapa lama pelajaran “Destrukturisasi” 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
- Pendalaman match
- if let dan while let
- Binding dengan @
- Destrukturisasi