Erken Çıkış için guard let
İç içe yapıları azaltmak için başarısızlıkta değeri açıp erken çıkın.
Erken Çıkış için guard let, 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.
Erken Çıkış Kavramı
guard bir koşulu denetler ve koşul başarısız olursa geçerli kapsamdan çıkar. Girintisiz bir normal akış sağlamak üzere erken çıkışlar için tasarlanmıştır.
func greet(_ name: String?) {
guard let name else {
print("No name")
return
}
print("Hello, \(name)")
}
greet("Ada")
greet(nil)Değer Bağlayan Erken Çıkış Sözdizimi
guard let value = optional else { return } yazın. if let'ten farklı olarak açılmış değer, erken çıkıştan sonra da kapsamda kalır.
func double(_ text: String) {
guard let n = Int(text) else {
print("Not a number")
return
}
print(n * 2)
}
double("8")
double("x")Değer Kapsamda Kalmaya Devam Eder
guard başarısızlık durumunda çıktığı için derleyici, sonrasında değerin mevcut olduğunu bilir. İşlevin geri kalanında bu değeri normal şekilde kullanırsınız.
func length(of text: String?) {
guard let text else { return }
let count = text.count
print(count)
}
length("hello")else Çıkış Yapmalı
Bir koruma ifadesinin else bloğu mevcut kapsamdan çıkmalıdır: return, break, continue veya throw. Bu, derleyici tarafından zorunlu tutulur.
func process(_ value: Int?) {
guard let value else {
return
}
print("Processing \(value)")
}
process(99)Kısa guard let Yazımı
if let gibi guard da kısa yazımı destekler: Adlar eşleştiğinde guard let name else { ... } yazabilirsiniz.
func show(_ name: String?) {
guard let name else {
print("missing")
return
}
print(name)
}
show("Kai")Düz Başarılı Akış
guard kullanımının en büyük avantajı düz ve okunabilir bir başarılı akış sağlamasıdır. İç içe if let piramitlerini bir dizi guard ifadesiyle karşılaştırın.
func register(name: String?, age: Int?) {
guard let name else { return }
guard let age else { return }
print("\(name) is \(age)")
}
register(name: "Mia", age: 28)Basit Koşulları Koruma
Guard yalnızca isteğe bağlı değerlerle değil, tüm mantıksal koşullarla çalışır. guard count > 0 else { return } erken çıkış yapar.
func divide(_ a: Int, by b: Int) {
guard b != 0 else {
print("Cannot divide by zero")
return
}
print(a / b)
}
divide(10, by: 2)
divide(10, by: 0)Döngülerde Guard
Bir döngünün içinde guard, veri eksik olduğunda bir yinelemeyi atlamak için continue kullanabilir.
let inputs = ["1", "x", "3"]
for item in inputs {
guard let n = Int(item) else { continue }
print(n * 10)
}Tek Guard İçinde Birden Çok Bağlama
Tek bir guard, virgüllerle ayrılmış birkaç isteğe bağlı değeri açabilir. Devam edebilmek için hepsinin başarılı olması gerekir.
func combine(_ a: String?, _ b: String?) {
guard let a, let b else { return }
print(a + b)
}
combine("foo", "bar")where Benzeri Denetimlerle Guard
Guard'ın başarılı olacağı koşulları daraltmak için bir bağlamadan sonra virgülle mantıksal koşullar ekleyebilirsiniz.
func validate(_ text: String?) {
guard let text, !text.isEmpty else {
print("invalid")
return
}
print("ok: \(text)")
}
validate("")
validate("hi")guard Ne Zaman Seçilmeli
Bir işlevin başındaki ön koşullar için guard, yalnızca bir dalın içinde kısa süreliğine değere ihtiyaç duyduğunuzda ise if let kullanın.
func area(width: Int?, height: Int?) -> Int {
guard let width, let height else { return 0 }
return width * height
}
print(area(width: 3, height: 4))Kısa Denetim
guard let'i test edin.
Özet: Erken Çıkış için guard let
guard let value else { return } bir isteğe bağlı değeri açar ve sonrasında değeri kapsam içinde tutar. else bloğu çıkış yapmak zorunda olduğundan başarılı akışınız düz ve okunabilir kalır.
func f(_ x: Int?) {
guard let x else { return }
print(x)
}
f(5)Sıkça Sorulan Sorular
“Erken Çıkış için guard let” dersi ücretsiz mi?
Evet — “Erken Çıkış için guard let” 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.
“Erken Çıkış için guard let” dersinde ne öğreneceğim?
İç içe yapıları azaltmak için başarısızlıkta değeri açıp erken çıkı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.
“Erken Çıkış için guard let” 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
- if let ve Kısa Değer Bağlama
- Erken Çıkış için guard let
- Birden Çok İsteğe Bağlı Değeri Bağlama
- switch ve for İçinde İsteğe Bağlı Desen