Zig Academy · Ders

Uygulamada defer ve errdefer

Her zaman çalıştırma ile hata durumunda çalıştırma arasında seçim yapın.

3. ders / 413 adım

Uygulamada defer ve errdefer, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 3. 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.

İki Temizleme Anahtar Sözcüğü

Zig size iki zamanlama aracı sunar: defer her zaman çalışırken errdefer yalnızca scope bir error ile sona erdiğinde çalışır.

defer Her Zaman Çalışır

Temizleme işleminin koşullar ne olursa olsun gerçekleşmesi gerektiğinde, örneğin işlevin tamamı boyunca açtığınız bir file'ı kapatırken defer kullanın.

const f = try open();
defer f.close();

errdefer Yalnızca Hata Durumunda Çalışır

Bir errdefer yalnızca scope bir error ile sona ererse çalışır. Başarılı bir dönüşte sessizce atlanır.

const buf = try alloc();
errdefer free(buf);

Başarı Durumunda Neden Atlanır

Bazen bir değeri return etmek için oluşturursunuz. Başarılı durumda değerin sahibi caller olur; bu nedenle onu free etmemelisiniz. errdefer bunu dikkate alır.

Yarım Oluşturulmuş Nesneler

errdefer, constructor işlevlerinde özellikle kullanışlıdır. Daha sonraki bir adım başarısız olursa önceki tahsisleri geri alır; böylece yarım oluşturulmuş bir nesneyi hiç sızdırmazsınız.

const a = try alloc();
errdefer free(a);
const b = try alloc();

Başarı Sahipliği Devreder

Tüm adımlar başarıyla tamamlandığında işlev değeri döndürür ve errdefer'ler çalışmaz. Ownership düzgün biçimde caller'a aktarılır.

return MyType{ .a = a, .b = b };

Birlikte Sorunsuz Çalışırlar

İkisini birlikte kullanabilirsiniz. Bir defer geçici çalışma belleğini yönetirken errdefer döndürmeyi planladığınız sonucu korur.

İkisi de Ters Sıraya Uyar

defer gibi, birden fazla errdefer de reverse sırada çözülür. Bir error durumunda Zig, ilgili defer ve errdefer'leri birlikte, en yenisinden başlayarak çalıştırır.

Yerleştirme Önemlidir

Her errdefer'i koruduğu adımdan right after sonra yerleştirin. Yalnızca kendi satırına ulaşıldıktan sonra gerçekleşen hatalara karşı koruma sağlar.

Basit Bir Kural

Tek bir soru sorun: Bu temizleme işlemi başarı durumunda da çalışmalı mı? Yanıt evetse defer, yalnızca error durumundaysa errdefer kullanın.

Oluşturulurken Sızıntısız

Bu anahtar sözcükler birlikte, elle kayıt tutmadan, başarı veya başarısızlık fark etmeksizin her yolda leak-free işlevler yazmanızı sağlar.

Hızlı Kontrol

errdefer, defer'e kıyasla ne zaman çalışır?

Özet

Temizleme işleminin her zaman çalışması gerektiğinde defer'e, yalnızca error yolunda yapılan işi geri alması gerektiğinde errdefer'e başvurun. ✅

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

“Uygulamada defer ve errdefer” dersi ücretsiz mi?

Evet — “Uygulamada defer ve errdefer” 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.

“Uygulamada defer ve errdefer” dersinde ne öğreneceğim?

Her zaman çalıştırma ile hata durumunda çalıştırma arasında seçim yapın. 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 3. dersidir.

“Uygulamada defer ve errdefer” 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. defer Neyi Garanti Eder?
  2. Birden Çok defer İçin Çalıştırma Sırası
  3. Uygulamada defer ve errdefer
  4. Open ile Close'u Eşleştirme
← Zig Academy Sayfasına Dön