Enum untuk Jenis Tersuai
Gunakan enum untuk mentakrifkan jenis yang boleh menjadi salah satu daripada beberapa varian, yang selalunya membawa data berkaitan.
Enum untuk Jenis Tersuai ialah pelajaran Belajar Pengaturcaraan Rust percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Belajar Pengaturcaraan Rust, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Belajar Pengaturcaraan Rust merangkumi sejumlah 3 pelajaran.
Enum: Pilihan Jenis Tersuai
Selamat datang ke Enum untuk Jenis Tersuai! Dalam Rust, enum (enumerasi) membolehkan anda mentakrifkan jenis yang boleh menjadi salah satu daripada beberapa varian yang berbeza dan tersendiri.
Anggaplah enum sebagai cara untuk mengatakan, "Item ini boleh jadi A, ATAU B, ATAU C." Enum amat berguna untuk mewakili keadaan atau pilihan yang berbeza.
Mentakrifkan Enum Mudah
Untuk mentakrifkan enum, anda menggunakan kata kunci enum diikuti namanya dan pendakap kerinting yang mengandungi variannya. Setiap varian ialah pilihan yang berbeza.
Berikut ialah contoh mudah untuk arah mata angin:
enum Direction {
North,
South,
East,
West,
}
fn main() {
let my_direction = Direction::North;
println!("My direction is {:?}", my_direction);
}Enum dengan Data Berkaitan
Tidak seperti varian mudah, varian enum juga boleh menyimpan data! Ini menjadikan enum sangat berkuasa kerana setiap varian boleh membawa set maklumat tersendiri.
Data itu boleh berupa tuple (seperti (i32, String)) atau struktur (seperti { x: i32, y: i32 }).
Data Berkaitan dalam Tindakan
Mari kita lihat enum yang setiap variannya mewakili jenis mesej yang berbeza, dengan sesetengahnya membawa data dan sesetengahnya tidak.
Perhatikan bahawa Move menggunakan struktur, Write menggunakan String, dan ChangeColor menggunakan tuple.
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn main() {
let m1 = Message::Quit;
let m2 = Message::Move { x: 10, y: 20 };
let m3 = Message::Write(String::from("hello"));
let m4 = Message::ChangeColor(255, 0, 128);
// We can't directly print enums with associated data using {:?}
// without deriving Debug, which we'll cover later.
// For now, just know these instances are created.
println!("Messages created!");
}Enum `Option`: Mengendalikan Ketiadaan
Salah satu enum paling asas dalam Rust ialah Option<T>. Enum ini digunakan untuk mewakili nilai yang mungkin wujud atau tidak wujud, sekali gus menghalang ralat penuding nol yang lazim dalam bahasa lain.
Some(T): Varian yang menyimpan nilai jenisT.None: Varian yang mewakili ketiadaan nilai.
Menggunakan `Option<T>` dengan Berkesan
Option<T> memaksa anda mengendalikan kes Some dan None secara eksplisit, lalu menjadikan kod anda lebih selamat dan teguh. Tiada lagi ranap null yang tidak dijangka!
Begini cara anda mungkin menggunakannya:
fn find_item(id: i32) -> Option<String> {
if id == 7 {
Some(String::from("Found item 7!"))
} else {
None
}
}
fn main() {
let item1 = find_item(7);
let item2 = find_item(5);
println!("Item 1: {:?}", item1);
println!("Item 2: {:?}", item2);
}Secara Ringkas: Enum `Result`
Satu lagi enum penting ialah Result<T, E>, yang digunakan untuk pengendalian ralat. Enum ini mempunyai dua varian:
Ok(T): Menunjukkan kejayaan dan mengandungi nilai yang berjaya.Err(E): Menunjukkan kegagalan dan mengandungi nilai ralat.
Kita akan mendalami Result dalam pelajaran akan datang, tetapi adalah baik untuk mengetahui bahawa ini ialah satu lagi corak enum yang berkuasa!
Kaedah pada Enum
Sama seperti struct, anda boleh mentakrifkan kaedah untuk enum menggunakan blok impl. Kaedah ini boleh melaksanakan tindakan atau mengembalikan nilai berdasarkan varian enum.
Mari tambahkan kaedah call pada enum Message kita sebelum ini:
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
impl Message {
fn call(&self) {
println!("A message was called!");
}
}
fn main() {
let m = Message::Write(String::from("hello"));
m.call();
}Semakan Ringkas tentang Enum
Antara pernyataan berikut, yang manakah benar tentang enum Rust?
Imbas Kembali: Enum untuk Jenis Tersuai
Tahniah! Anda telah mempelajari cara enum Rust menyediakan kaedah yang berkuasa untuk mentakrifkan jenis tersuai yang boleh terdiri daripada beberapa varian.
- Enum membolehkan anda memodelkan pilihan dan keadaan dengan jelas.
- Varian boleh membawa data berkaitan, menjadikannya sangat fleksibel.
- Enum
Option<T>penting untuk mengendalikan ketiadaan nilai dengan selamat. - Enum boleh mempunyai kaedah yang ditakrifkan menggunakan blok
impl.
Seterusnya, kita akan meneroka cara bekerja dengan varian enum ini menggunakan padanan corak yang berkuasa!
Pelajari Rust dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 39
- Pelajaran
- 144
Soalan Lazim
Adakah pelajaran “Enum untuk Jenis Tersuai” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Belajar Pengaturcaraan Rust, termasuk “Enum untuk Jenis Tersuai”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Belajar Pengaturcaraan Rust merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Enum untuk Jenis Tersuai”?
Gunakan enum untuk mentakrifkan jenis yang boleh menjadi salah satu daripada beberapa varian, yang selalunya membawa data berkaitan. Anda berlatih Belajar Pengaturcaraan Rust menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Belajar Pengaturcaraan Rust?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Belajar Pengaturcaraan Rust di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 3.
Berapa lamakah pelajaran “Enum untuk Jenis Tersuai” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Belajar Pengaturcaraan Rust ini?
Ya. Setiap pelajaran Belajar Pengaturcaraan Rust menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mentakrifkan dan Menggunakan Struct
- Enum untuk Jenis Tersuai
- Padanan Corak Berkuasa