Zig Academy · Ders

Özyineleme ve Birden Çok Dönüş

Kendini çağıran ve dallanan işlevler.

4. ders / 413 adım

Özyineleme ve Birden Çok Dönüş, CoddyKit'te ücretsiz bir Zig Academy 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, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.

Bir İşlevin Kendini Çağırması

Özyineleme, bir işlevin aynı problemin daha küçük bir parçasını çözmek için kendini adım adım çağırmasıdır. 🔁

Her Özyinelemenin Bir Temel Durumu Olmalıdır

Temel durum, durma noktasıdır. Bu durum olmadan işlev kendini sonsuza kadar çağırır ve yığın taşmasına neden olur.

Özyinelemeli Durum

Özyinelemeli durum, temel duruma doğru istikrarlı biçimde ilerlemek için işlevi daha küçük bir girdiyle yeniden çağırır.

fn factorial(n: u64) u64 {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

Küçük Bir Çağrıyı İzleme

factorial(3) çağrısı 3 * factorial(2), ardından 2 * factorial(1) hâline gelir. Temel durum 1 döndürür ve sonuçlar geriye doğru çarpılır.

Özyineleme Yığını Kullanır

Her çağrı yığına bir çerçeve ekler. Çok fazla seviye yığın taşmasına neden olur; bu nedenle özyineleme derinliğini makul tutun.

Birçok Problem Bunun Yerine Döngü Kullanır

Özyinelemeli olan her şey bir döngü olarak da yazılabilir. Döngüler ek yığın çerçevelerini önlediği için genellikle daha güvenli seçimdir.

fn factorial(n: u64) u64 {
    var acc: u64 = 1;
    var i: u64 = 2;
    while (i <= n) : (i += 1) acc *= i;
    return acc;
}

Bir İşlev Bir Tür Döndürür

Bir Zig işlevinin tek bir döndürme türü vardır; ancak bu türü üreten çok sayıda döndürme ifadesi bulunabilir.

Erken Döndürmeler Dallara Ayrılır

Farklı dallardan erken dönebilirsiniz. Her yol, bildirilen türde bir değer döndürerek işlevden hemen çıkar.

fn sign(n: i32) i32 {
    if (n > 0) return 1;
    if (n < 0) return -1;
    return 0;
}

Bir Yapıda Birden Çok Değer Döndürme

Birden çok değer döndürmek için bunları tek bir sonuçta bir araya getiren bir yapı veya demet döndürün.

fn divmod(a: u32, b: u32) struct { q: u32, r: u32 } {
    return .{ .q = a / b, .r = a % b };
}

Sonucu Açma

Çağıran kod, döndürülen her parçayı kullanmak için result.q ve result.r gibi adlarla bir araya getirilmiş alanları okur.

const res = divmod(7, 2);
// res.q is 3, res.r is 1

Hataları da Döndürme

Bir işlev, bir dalın başarısızlığı bildirmesine ve diğer dalların normal bir değer döndürmesine olanak tanımak için bir hata birleşimi döndürebilir.

Hızlı Kontrol

Özyinelemeli bir işlev yazdınız ancak işlev hiç durmayıp çöküyor. Büyük olasılıkla neyi unuttunuz?

Özet

Özyineleme için bir temel durum ve daha küçük bir özyinelemeli çağrı gerekir. Bir işlevin tek bir döndürme türü, ancak birçok döndürme yolu vardır; yapı da çeşitli sonuçları bir araya getirir. 🎯

Başlamak ücretsiz

Yapay zeka eğitmeniyle Zig öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“Özyineleme ve Birden Çok Dönüş” dersi ücretsiz mi?

Evet — “Özyineleme ve Birden Çok Dönüş” 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 Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.

“Özyineleme ve Birden Çok Dönüş” dersinde ne öğreneceğim?

Kendini çağıran ve dallanan işlevler. Zig Academy 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.

Zig Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Zig Academy, 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.

“Özyineleme ve Birden Çok Dönüş” 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 Zig Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Zig Academy 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. İşlev Sözdizimi ve Dönüş Türleri
  2. Değerleri ve Başvuruları Geçirme
  3. pub İşlevleri ve Görünürlük
  4. Özyineleme ve Birden Çok Dönüş
← Zig Academy Sayfasına Dön