Başlatıcılar ve deinit (sınıflar)
Belirlenmiş ve kolaylık başlatıcıları oluşturun, varsayılan değerler sağlayın, gerektiğinde başarısız olabilen init kullanın ve sınıf sonlandırıcılarını anlayın.
Başlatıcılar ve deinit (sınıflar), CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 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 3 dersten oluşur.
Genel bakış
Bu derste belirlenmiş ve kolaylık başlatıcıları, varsayılan değerler, başarısız olabilen init ve sınıflardaki sonlandırıcılar ele alınır.
Yapı başlatmanın temelleri
Yapılar, üye bazlı bir başlatıcı edinir. Çağrıları basitleştirmek için varsayılan değerler sağlayın.
struct User {
var name: String = "Guest" // default value
var age: Int
// memberwise init is synthesized: User(name:age:)
}
let u1 = User(name: "Ada", age: 20)
let u2 = User(age: 0) // uses default name
print(u1.name, u2.name)Belirlenmiş başlatıcı
Belirlenmiş başlatıcı, kullanılmadan önce tüm saklanan özelliklerin ayarlanmasını sağlar.
class Person {
let name: String
let id: Int
// Designated initializer: fully initializes stored properties
init(name: String, id: Int) {
self.name = name
self.id = id
}
}
let p = Person(name: "Bob", id: 1)
print(p.name, p.id)Kolaylık başlatıcısı
Kolaylık başlatıcıları, aynı sınıftaki bir belirlenmiş başlatıcıya temsilci olarak yönlendirilmelidir.
class Rectangle {
var width: Double
var height: Double
// Designated
init(width: Double, height: Double) {
self.width = width
self.height = height
}
// Convenience must call a designated initializer
convenience init(square side: Double) {
self.init(width: side, height: side)
}
}
print(Rectangle(square: 3).width)Başarısız olabilen başlatıcı
Doğrulamanın başarısız olabileceği girdiler için init? kullanın. Sonuç isteğe bağlıdır.
struct Email {
let value: String
init?(_ raw: String) {
guard raw.contains("@") else { return nil } // fail to initialize
self.value = raw
}
}
print(Email("a@b.com")?.value ?? "invalid")
print(Email("not email")?.value ?? "invalid")Sonlandırıcı
Yalnızca sınıflarda sonlandırıcı bulunur; örnek bellekten kaldırıldığında çağrılır (ARC).
class TempResource {
let id: Int
init(id: Int) { self.id = id }
deinit { print("Releasing resource", id) }
}
do {
let r = TempResource(id: 42)
print("Using", r.id)
} // r goes out of scope; ARC may call deinit hereBelirlenmiş ve kolaylık başlatıcıları
Kısa kontrol: Kolaylık başlatıcıları en sonunda hangi başlatıcıyı çağırmalıdır?
Özet
Özet: Tüm özellikleri ayarlamak için belirlenmiş başlatıcıları kullanın; daha kullanışlı çağrı noktaları sunmak için kolaylık başlatıcıları ekleyin; doğrulama için init? kullanmayı değerlendirin; sınıflar temizlik işlemini sonlandırıcılarla gerçekleştirir.
Sıkça Sorulan Sorular
“Başlatıcılar ve deinit (sınıflar)” dersi ücretsiz mi?
Evet — “Başlatıcılar ve deinit (sınıflar)” 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 3 dersten oluşur.
“Başlatıcılar ve deinit (sınıflar)” dersinde ne öğreneceğim?
Belirlenmiş ve kolaylık başlatıcıları oluşturun, varsayılan değerler sağlayın, gerektiğinde başarısız olabilen init kullanın ve sınıf sonlandırıcıları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, 3 dersinin 3. dersidir.
“Başlatıcılar ve deinit (sınıflar)” 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
- Struct ve Class karşılaştırması, özellikler ve başlatıcılar
- Saklanan ve hesaplanan özellikler, gözlemciler
- Başlatıcılar ve deinit (sınıflar)