İlk Enum'unuzu Tanımlama
Basit numaralandırılmış türler oluşturun.
İlk Enum'unuzu Tanımlama, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.
What Is an Enum?
Bir enum (numaralandırma), olası değerlerini (variant / varyant olarak adlandırılır) listeleyerek bir tür tanımlamanıza olanak tanır. Bu türdeki bir değer, yalnızca bu varyantlardan biri olabilir.
Enum'lar, ana yönler veya bir destedeki kartların simgeleri gibi, bir şeyin sabit bir durum kümesine sahip olduğu durumlarda harikalar yaratır.
enum Direction {
North,
South,
East,
West,
}Declaring an Enum
Bir enum'u enum anahtar kelimesi, bir isim ve süslü parantezler içinde virgülle ayrılmış bir varyant listesiyle bildirirsiniz.
Geleneksel olarak enum adları (Direction gibi) ve varyant adları da (North gibi) PascalCase kullanır.
enum TrafficLight {
Red,
Yellow,
Green,
}Creating an Enum Value
Bir değer oluşturmak için enum adını, iki iki nokta üst üste :: işaretini ve ardından varyantı yazarsınız.
Örneğin, Direction::North, Direction türünde bir değer oluşturur. :: işareti, Rust'a varyantın hangi enuma ait olduğunu söyler.
enum Direction {
North,
South,
East,
West,
}
fn main() {
let heading = Direction::East;
println!("Created a direction value!");
}Enums Are Types
Tanımlandıktan sonra, bir enum tıpkı i32 veya bool gibi gerçek bir türdür. Değerlerini değişkenlerde saklayabilir ve fonksiyonlara geçirebilirsiniz.
Direction alan bir fonksiyon, onun varyantlarından herhangi birini kabul eder, ancak başka hiçbir şeyi kabul etmez.
enum Direction {
North,
South,
}
fn describe(d: Direction) {
println!("Got a direction");
}
fn main() {
describe(Direction::North);
}Why Not Just Use Numbers?
Bir trafik lambasını 0, 1 ve 2 ile temsil edebilirsiniz, ancak yanlışlıkla 7 kullanmanızı engelleyen hiçbir şey yoktur.
Bir enum, geçersiz durumları imkansız hale getirir: derleyici, değerin her zaman listelenen varyantlardan biri olmasını garanti eder. Bu daha güvenlidir ve okuması çok daha kolaydır.
Deriving Debug to Print
Varsayılan olarak Rust bir enum'un nasıl yazdırılacağını bilmez. Enum'un üzerine #[derive(Debug)] eklemek, onu {:?} biçimlendiricisiyle yazdırmanıza olanak tanır.
Bu, öğrenirken hızlı hata ayıklama için harikadır.
#[derive(Debug)]
enum Direction {
North,
South,
}
fn main() {
let d = Direction::South;
println!("{:?}", d);
}Comparing Enum Values
Varyantları == ile karşılaştırabilmek için #[derive(PartialEq)] ekleyin.
Bu, basit kontroller için kullanışlıdır; ancak daha zengin davranışlar için genellikle match ifadesi (yakında gelecek) daha iyi bir araçtır.
#[derive(PartialEq)]
enum Light {
Red,
Green,
}
fn main() {
let l = Light::Red;
if l == Light::Red {
println!("Stop!");
}
}Many Variants Allowed
Bir enum, ihtiyaç duyduğunuz kadar çok varyanta sahip olabilir. Bunların hepsi aynı türün bir parçasıdır.
İlgili durumları bir arada listelemek, kodunuzu düzenli tutar ve olası seçeneklerin bir bakışta anlaşılmasını sağlar.
enum Suit {
Hearts,
Diamonds,
Clubs,
Spades,
}Enums in the Standard Library
Rust'un kendi standart kütüphanesi her yerde enum kullanır. İki ünlü örnek Option (mevcut olabilen veya olmayan bir değer) ve Result'tır (başarı veya hata).
Enum'ları şimdi öğrenmek, daha sonra bu temel tipleri anlamanızı sağlar.
// Option is an enum in std:
// enum Option<T> {
// Some(T),
// None,
// }Copying Simple Enums
Varyantları veri barındırmayan enum'lar Clone ve Copy trait'lerini türetebilir. Bu durumda değerler taşınmak (move) yerine otomatik olarak kopyalanır.
Bu, küçük durum (state) enum'larının tamsayılar (integers) gibi basit değerler gibi davranmasını sağlar.
#[derive(Clone, Copy)]
enum Coin {
Heads,
Tails,
}
fn main() {
let a = Coin::Heads;
let b = a; // a is still usable
}Putting It Together
İşte eksiksiz bir program: bir enum tanımlayın, bir değer oluşturun ve Debug kullanarak yazdırın.
Programı çalıştırın ve çıktının güncellendiğini görmek için Green ifadesini başka bir varyantla değiştirmeyi deneyin.
#[derive(Debug)]
enum TrafficLight {
Red,
Yellow,
Green,
}
fn main() {
let current = TrafficLight::Green;
println!("Light is {:?}", current);
}Quick Check
Enum temelleri hakkındaki bilginizi test edin.
Recap
Bir enum'un, enum anahtar kelimesiyle bildirilen, sabit bir varyant listesinden bir tür tanımladığını öğrendiniz.
Değerleri EnumName::Variant ile oluşturursunuz ve bunları yazdırmak, karşılaştırmak ve kopyalamak için Debug, PartialEq veya Copy türetebilirsiniz. Sonraki aşamada match ile her bir varyanta nasıl tepki verileceğini öğreneceksiniz.
Sıkça Sorulan Sorular
“İlk Enum'unuzu Tanımlama” dersi ücretsiz mi?
Evet — “İlk Enum'unuzu Tanımlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.
“İlk Enum'unuzu Tanımlama” dersinde ne öğreneceğim?
Basit numaralandırılmış türler oluşturun. Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“İlk Enum'unuzu Tanımlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- İlk Enum'unuzu Tanımlama
- Enum Varyantlarıyla Eşleştirme
- Veri İçeren Enum'lar
- Match Koruyucuları ve Bağlamaları