Yapı Bozma
Yapılar, enum'lar, demetler
Yapı Bozma, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 4. 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.
Yapısöküm Nedir?
Desen çözümleme, bileşik bir değeri bir desen kullanarak parçalarına ayırır. Demetlerle, yapı türleriyle, enum'larla, dizilerle ve daha fazlasıyla çalışır.
Demetlerde Desen Çözümleme
Bir demetin her öğesini tek bir let içinde kendi değişkenine bağlayabilirsiniz.
fn main() {
let point = (3, 7);
let (x, y) = point;
println!("x = {x}, y = {y}");
}Demet Bölümlerini Yoksayma
Bir değeri atlamak için _, birkaç değeri atlamak için .. kullanın.
fn main() {
let data = (1, 2, 3, 4);
let (first, .., last) = data;
println!("{first} ... {last}");
}Yapı Türlerinde Desen Çözümleme
Alanları adlarına göre bir yapı türünden çıkarın. Bağlanan değişken adları alanlarla aynı olabilir veya yeniden adlandırılabilir.
struct Point {
x: i32,
y: i32,
}
fn main() {
let p = Point { x: 10, y: 20 };
let Point { x, y } = p;
println!("{x}, {y}");
}Alanları Yeniden Adlandırma
Bir yapı alanını farklı bir değişken adına bağlamak için field: new_name kullanın.
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}");
}Yapı Alanlarını Yoksayma
İhtiyacınız olmayan kalan alanları yok saymak için .. kullanılır.
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}");
}Enum'larda Desen Çözümleme
Bir match içinde, verilerini çıkarmak için enum varyantlarında desen çözümlemesi yapabilirsiniz.
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}"),
}
}Parametrelerde Desen Çözümleme
İşlev parametrelerinde doğrudan desen çözümlemesi yapılabilir; bu, demetler ve küçük yapı türleri için kullanışlıdır.
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)));
}İç İçe Desen Çözümleme
Desenler serbestçe iç içe yerleştirilebilir; böylece tek adımda yapıların derinliklerindeki değerlere ulaşabilirsiniz.
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}");
}Dizilerde ve Dilimlerde Desen Çözümleme
Dizilerde ve dilimlerde desen çözümlemesi yapılabilir; buna ortadaki bölümü .. ile yakalamak da dahildir.
fn main() {
let arr = [1, 2, 3, 4, 5];
let [first, .., last] = arr;
println!("first {first}, last {last}");
}for Döngülerinde Desen Çözümleme
Desen çözümleme for döngülerinde de çalışır; bu, değer çiftleri üzerinde yineleme yapmak için idealdir.
fn main() {
let pairs = [("a", 1), ("b", 2), ("c", 3)];
for (label, value) in pairs {
println!("{label} = {value}");
}
}Kısa Kontrol
Desen çözümlemesi yaparken bir yapı türünün kalan alanlarını nasıl yok sayarsınız?
Özet
Desen çözümlemeyi öğrendiniz:
- Demetleri, yapı türlerini, enum'ları, dizileri ve dilimleri parçalara ayırma
- Alanları
field: nameile yeniden adlandırma - Bölümleri
_ve..ile yok sayma let,matchve işlev parametrelerinde desen çözümleme- Derinlemesine çıkarma için desenleri iç içe yerleştirme
Sıkça Sorulan Sorular
“Yapı Bozma” dersi ücretsiz mi?
Evet — “Yapı Bozma” 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.
“Yapı Bozma” dersinde ne öğreneceğim?
Yapılar, enum'lar, demetler 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 4. dersidir.
“Yapı Bozma” 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.