0Pricing
Learn Rust Coding · Ders

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: name ile yeniden adlandırma
  • Bölümleri _ ve .. ile yok sayma
  • let, match ve 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.

Bu kursun tüm dersleri

  1. match Derinlemesine İnceleme
  2. if let ve while let
  3. @ ile Bağlama
  4. Yapı Bozma
← Learn Rust Coding Sayfasına Dön