0Pricing
Learn Rust Coding · Ders

Çıkarma Kuralları

Yaşam sürelerinin çıkarıldığı durumlar

Çıkarma Kuralları, 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.

Yazmadığınız Ömürler

Birçok işlev, herhangi bir ömür açıklaması olmadan başvurular alıp döndürür ve yine de derlenir. Bunun nedeni ömür çıkarımıdır: derleyici belirgin ömürleri sizin için çıkarır.

Çıkarım Yalnızca Bir Kısayoldur

Çıkarım ömürleri ortadan kaldırmaz; derleyici birkaç belirli kural kullanarak bunları arka planda doldurur. Kurallar durumunuzu kapsadığında açıklamaları yazmayabilirsiniz.

Çıkarılmış Bir İşlev

Bu işlevde açıkça belirtilmiş ömürler yoktur; yine de derleyici, döndürülen başvurunun girdiden ödünç aldığını anlar. Kurallar durumu belirsiz olmaktan çıkarır.

fn first_word(s: &str) -> &str {
    s.split(' ').next().unwrap_or("")
}

fn main() {
    let phrase = String::from("rust is fun");
    println!("{}", first_word(&phrase));
}

1. Kural: Her Girdi Kendine Ait Bir Ömür Alır

İlk kural şudur: parametrelerde çıkarılmış her ömür farklı bir ömür alır. İki başvuru parametresi, birbirinden ayrı iki ömür alır.

2. Kural: Bir Girdi, Bir Çıktı

İkinci kural şudur: Tam olarak bir girdi ömrü varsa, bu ömür tüm çıktı ömürlerine atanır. Bu, bir başvuru alıp döndüren first_word gibi işlevleri kapsar.

fn trim_start(s: &str) -> &str {
    s.trim_start()
}

fn main() {
    println!("[{}]", trim_start("   hi"));
}

3. Kural: Yöntemler ve &self

Üçüncü kural şudur: Bir yöntemde &self veya &mut self varsa, self'in ömrü tüm çıktı ömürlerine atanır. Yöntemlerin nadiren açıklamaya ihtiyaç duymasının nedeni budur.

struct Holder { value: String }

impl Holder {
    fn get(&self) -> &str {
        &self.value
    }
}

fn main() {
    let h = Holder { value: String::from("stored") };
    println!("{}", h.get());
}

Çıkarım Başarısız Olduğunda

Üç kuralın uygulanmasından sonra herhangi bir çıktı ömrü hâlâ bilinmiyorsa derleyici sizden açıkça açıklama eklemenizi ister. longest işlevi klasik örnektir: iki girdi ve belirsiz bir çıktı.

longest İşlevi Yeniden

İki başvuru girdisi ve bir başvuru çıktısı vardır: 2. kural uygulanmaz (birden fazla girdi vardır) ve self yoktur. Bu nedenle açıklama eklemelisiniz.

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
    if x.len() > y.len() { x } else { y }
}

fn main() {
    println!("{}", longest("abcd", "ab"));
}

Birden Çok Girdi, self'ten Gelen Çıktı

Birden fazla parametreye sahip bir yöntem, başka başvuru parametreleri bulunsa bile 3. kural gereği çıktı ömrünü self'ten alır.

struct Doc { body: String }

impl Doc {
    fn announce(&self, _note: &str) -> &str {
        &self.body
    }
}

fn main() {
    let d = Doc { body: String::from("content") };
    println!("{}", d.announce("ping"));
}

Kuralların Var Olma Nedeni

Bu üç kural gerçek kodların ezici çoğunluğunu kapsar; bu nedenle çoğu işlevin hiç ömür söz dizimine ihtiyacı yoktur. Açıklamaları yalnızca amaç gerçekten belirsiz olduğunda yazarsınız.

Kısa Denetim Listesi

Çıkarımın geçerli olup olmadığına karar vermek için şunları sorun:

  • Tam olarak bir girdi başvurusu var mı? Çıktı ondan ödünç alınır.
  • Bir &self var mı? Çıktı self'ten ödünç alınır.
  • Aksi durumda açıkça açıklama ekleyin.

Kısa Kontrol

Çıkarım kurallarını anlayıp anlamadığınızı sınayın.

Özet

Ömürlerin ne zaman çıkarıldığını öğrendiniz:

  • 1. kural: Her girdi başvurusu kendine ait bir ömür alır
  • 2. kural: Tek bir girdi ömrü tüm çıktılara eşlenir
  • 3. kural: Yöntemlerde çıktı ömrünü &self sağlar
  • Çıktılar belirsiz kalırsa açıkça açıklama eklersiniz

Sıkça Sorulan Sorular

“Çıkarma Kuralları” dersi ücretsiz mi?

Evet — “Çıkarma Kuralları” 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.

“Çıkarma Kuralları” dersinde ne öğreneceğim?

Yaşam sürelerinin çıkarıldığı durumlar 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.

“Çıkarma Kuralları” 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. Yaşam Süreleri Neden Gerekli
  2. Yaşam Süresi Açıklamaları
  3. Yapılarda Yaşam Süreleri
  4. Çıkarma Kuralları
← Learn Rust Coding Sayfasına Dön