Enum tanımı
- Rust kursu
- Başlangıç
- Ders 77/115
- 4 dk
enum ile numaralandırma tanımlamayı öğrenirsin.
Enum tanımı
Enum (numaralandırma), bir değerin sabit bir seçenek kümesinden yalnızca biri olabileceğini ifade eden türdür. Her seçeneğe variant denir:
#[derive(Debug)]
enum Yon {
Kuzey,
Guney,
Dogu,
Bati,
}
let y = Yon::Dogu;
println!("{:?}", y); // DoguVariant'lar enum adıyla nitelenir: Yon::Dogu. Struct "ve" ilişkisini (ad ve puan), enum "ya da" ilişkisini (kuzey ya da güney) modeller.
Enum ve tamsayılar
Veri taşımayan variant'lar arka planda bir ayırt edici sayı (discriminant) ile tutulur; açıkça değer verilebilir ve as ile tamsayıya çevrilebilir:
enum Durum {
Bekliyor = 1,
Hazir = 2,
Hata = 9,
}
println!("{}", Durum::Hata as i32); // 9Tersi (tamsayıdan enum'a) otomatik değildir; geçersiz sayılar olabileceği için match ile elle yazılır.
Uygulama Yön enum'ı
#[derive(Debug)] ile Kuzey, Guney, Dogu, Bati variant'larından oluşan enum Yon tanımla. Yon::Dogu değerini bir değişkene ata ve {:?} ile yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
#[derive(Debug)]
enum Yon {
Kuzey,
Guney,
Dogu,
Bati,
}
fn main() {
let y = Yon::Dogu;
println!("{:?}", y);
}Beklenen çıktı
Dogu
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi enum için en uygun örnektir?
- Bir metin
- Trafik ışığının rengi: kırmızı, sarı, yeşil Doğru cevap
- Bir kişinin adı ve yaşı
- Bir sayı listesi
Açıklama: Değer, sabit seçeneklerden yalnızca biri olabiliyorsa enum doğal seçimdir.
2 Variant seç
let y = Yon____Bati;
let y = Yon::Bati;
Açıklama: Variant'lar EnumAdı::Variant biçiminde yazılır.
3 Kavram ve örnek
| Kavram | Anlamı |
|---|---|
enum Yon { .. } |
Enum tanımı |
Yon::Dogu |
Variant değeri |
Durum::Hata as i32 |
Ayırt edici sayı |
#[derive(Debug)] |
Variant adını yazdırır |