Özyineleme ve Birden Çok Dönüş
Kendini çağıran ve dallanan işlevler.
Ö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 1Hataları 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. 🎯
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
- İşlev Sözdizimi ve Dönüş Türleri
- Değerleri ve Başvuruları Geçirme
- pub İşlevleri ve Görünürlük
- Özyineleme ve Birden Çok Dönüş