Birden Çok defer Bloğunun Sıralaması
defer ifadelerinin ters yürütme sırasını anlayın.
Birden Çok defer Bloğunun Sıralaması, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 2. 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, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Birden Çok defer
Bir kapsam birkaç defer bloğu içerebilir. Bunların tümü kapsamdan çıkılırken çalışır.
func demo() {
defer { print("A") }
defer { print("B") }
print("body")
}
demo()Ters (LIFO) Sıra
Ertelenen bloklar bildirim sırasının tersine çalışır: son bildirilen ilk çalışır.
func order() {
defer { print("1") }
defer { print("2") }
defer { print("3") }
print("start")
}
order()LIFO Neden Kullanılır
LIFO sıralaması, kurulum ve temizlemenin iç içe geçme biçimini yansıtır: en son yapılan kurulum ilk olarak geri alınır.
func resources() {
print("open A")
defer { print("close A") }
print("open B")
defer { print("close B") }
print("use both")
}
resources()Yığın Zihinsel Modeli
defer'leri bir yığın olarak düşünün: her biri bir görev ekler ve kapsam sona erdiğinde görevler ters sırayla yığından çıkarılır.
func stack() {
defer { print("pop first-declared last") }
defer { print("pop last-declared first") }
print("push done")
}
stack()defer'ler ve Yerel Durum
Her defer, çevresindeki değişkenleri yakalar ve çalıştığı sırada bu değişkenlerin son değerlerini görür.
func state() {
var x = 1
defer { print("x is", x) }
x = 42
}
state()Döngülerde defer
Döngü içinde her yineleme kendi defer'lerini kaydeder ve yinelemenin sonunda bunları LIFO sırasıyla çalıştırır.
for i in 1...2 {
defer { print("late", i) }
defer { print("early", i) }
print("body", i)
}İç İçe Kapsamlar
defer'ler kendi kapsamlarından çıkıldığında çalışır; bu nedenle iç bloktaki defer, dış bloktakinden önce çalışır.
func nested() {
defer { print("outer defer") }
do {
defer { print("inner defer") }
print("inner body")
}
print("outer body")
}
nested()Öngörülebilir Temizleme
LIFO sırası, eşleştirilmiş açma/kapatma çiftlerinin doğal olarak doğru sırayla kapanmasını sağlar.
func files() {
print("open log")
defer { print("flush log") }
print("open db")
defer { print("disconnect db") }
print("transaction")
}
files()Sırayı Okuma
Çıktıyı tahmin etmek için defer'leri aşağıdan yukarıya okuyun: kapsamdaki son defer ilk olarak yazdırılır.
func quiz() {
defer { print("one") }
defer { print("two") }
print("body runs first")
}
quiz()return ile Birleştirme
İşlev erken dönse bile kaydedilmiş tüm defer'ler LIFO sırasıyla çalışır.
func early(_ skip: Bool) {
defer { print("cleanup 1") }
defer { print("cleanup 2") }
if skip { return }
print("full body")
}
early(true)En İyi Uygulama
Her temizleme işlemini kurulumundan hemen sonra bildirin ve bunların doğru şekilde geri alınması için LIFO sıralamasına güvenin.
func pattern() {
print("acquire 1")
defer { print("release 1") }
print("acquire 2")
defer { print("release 2") }
print("work")
}
pattern()Hızlı Kontrol
defer sıralamasını sınayın.
Özet
Birden çok defer bloğu, kapsamdan çıkılırken ters (LIFO) sırayla çalışır: son bildirilen ilk çalışır. Bu, iç içe kurulum/temizleme çiftlerini erken dönüşte bile doğal olarak doğru sırayla geri alır.
func demo() {
defer { print("1") }
defer { print("2") }
print("body")
}
demo()Sıkça Sorulan Sorular
“Birden Çok defer Bloğunun Sıralaması” dersi ücretsiz mi?
Evet — “Birden Çok defer Bloğunun Sıralaması” 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 Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Birden Çok defer Bloğunun Sıralaması” dersinde ne öğreneceğim?
defer ifadelerinin ters yürütme sırasını anlayın. Swift 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.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift 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 2. dersidir.
“Birden Çok defer Bloğunun Sıralaması” 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 Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift 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
- defer Nasıl Çalışır
- Birden Çok defer Bloğunun Sıralaması
- Kaynak Temizleme için defer
- Hatalar ve Erken Dönüşlerle defer