Kaynak Temizleme için defer
Dosyaları güvenilir biçimde kapatın ve kaynakları serbest bırakın.
Kaynak Temizleme için defer, CoddyKit'te ücretsiz bir Swift 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, 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.
Temizleme Sorunu
Dosyalar, kilitler veya bağlantılar gibi kaynakların serbest bırakılması gerekir. Bazı yollarda serbest bırakmayı unutmak kaynak sızıntılarına neden olur.
func work() {
print("acquire resource")
print("use resource")
print("release resource")
}
work()defer Serbest Bırakmayı Garanti Eder
Serbest bırakma işlemini bir defer içine koymak, işlevin nasıl sona erdiğinden bağımsız olarak bu işlemin çalışmasını garanti eder.
func work() {
print("acquire resource")
defer { print("release resource") }
print("use resource")
}
work()Dosya Tanıtıcısını Taklit Etme
Burada basit bir yapı açma/kapatma işlemini modeller. defer, close çağrısının her zaman yapılmasını sağlar.
struct File {
let name: String
func close() { print("closed", name) }
}
func readFile() {
let f = File(name: "data.txt")
defer { f.close() }
print("reading", f.name)
}
readFile()Kilit Alma/Serbest Bırakma
Bir kilidi modelleyin: kilidi alın, ardından kritik bölümün kilidinin her zaman açılması için serbest bırakmayı defer ile planlayın.
func critical() {
print("lock acquired")
defer { print("lock released") }
print("critical section work")
}
critical()Temizlemeyi Kurulumun Yanında Tutma
Temizlemeyi kurulumun hemen yanında tutmak, eşleşmeyi belirgin hâle getirir ve unutulmasını zorlaştırır.
func session() {
print("connect")
defer { print("disconnect") }
print("send request")
print("receive response")
}
session()Birden Çok Kaynak
Birden çok kaynakla çalışırken her temizleme işlemini kurulumundan hemen sonra bildirin; LIFO sırası bunları doğru biçimde kapatır.
func transaction() {
print("open connection")
defer { print("close connection") }
print("begin transaction")
defer { print("commit transaction") }
print("run query")
}
transaction()counter Sıfırlama
Bir defer, kapsam sona erdiğinde bir işareti sıfırlamak gibi bir durumu geri yükleyebilir.
func tracked() {
var active = true
defer { active = false; print("active reset to", active) }
print("active is", active)
}
tracked()Yinelemeyi Önleme
defer olmadan temizlemeyi her çıkış yolunda tekrarlamanız gerekirdi. defer ise bunu bir kez yazmanızı sağlar.
func validate(_ ok: Bool) {
print("start")
defer { print("cleanup done once") }
if !ok {
print("invalid")
return
}
print("valid")
}
validate(false)Hesaplanan Değerle Temizleme
Bir defer, processed öğelerin sayısı gibi son bir ölçümü loglayabilir.
func batch() {
var processed = 0
defer { print("processed", processed, "items") }
for _ in 1...3 { processed += 1 }
}
batch()Geçici Durumu Geri Yükleme
Bir ayarı geçici olarak değiştirip ardından güvenilir biçimde geri yüklemek için defer kullanın.
func withVerbose() {
var verbose = false
verbose = true
defer { verbose = false; print("verbose restored:", verbose) }
print("verbose during work:", verbose)
}
withVerbose()En İyi Uygulama
Serbest bırakılması gereken bir şeyi her aldığınızda, serbest bırakma işlemini hemen sonraki satırda defer ile kaydedin.
func handle() {
print("acquire")
defer { print("release") }
print("process")
}
handle()Hızlı Kontrol
Temizleme için defer kullanımını sınayın.
Özet
Kaynağı aldıktan hemen sonra serbest bırakma işlemini defer ile kaydedin. Temizlemenin her çıkış yolunda çalışması garanti edilir, temizleme kurulumun yanında tutulur ve dönüş yollarında temizlemenin tekrarlanması önlenir.
func work() {
print("acquire")
defer { print("release") }
print("use")
}
work()Sıkça Sorulan Sorular
“Kaynak Temizleme için defer” dersi ücretsiz mi?
Evet — “Kaynak Temizleme için defer” 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.
“Kaynak Temizleme için defer” dersinde ne öğreneceğim?
Dosyaları güvenilir biçimde kapatın ve kaynakları serbest bırakı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 3. dersidir.
“Kaynak Temizleme için defer” 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