0Pricing
Swift Academy · Ders

Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci

Çökmeye neden olmadan seçenekli değerler üzerindeki yöntemleri çağırın ve özelliklere erişin.

Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci, 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.

Hoş Geldiniz

İsteğe bağlı zincirleme, isteğe bağlı değerlerden oluşan bir zincir üzerinden yöntemleri çağırmanıza, özelliklere erişmenize ve alt indisleme yapmanıza güvenli biçimde olanak tanır. Zincirdeki herhangi bir bağlantı nil ise ifadenin tamamı çökmeden nil döndürür.

?. İşleci

```swift struct Address { var city: String } struct Person { var address: Address? } let alice = Person(address: Address(city: "Istanbul")) let bob = Person(address: nil) print(alice.address?.city) // Optional("Istanbul") print(bob.address?.city) // nil ```

Birden Çok Düzeyi Zincirleme

Zincirler istenildiği kadar derin olabilir: ```swift struct Company { var ceo: Person? } let company = Company(ceo: alice) let city = company.ceo?.address?.city print(city ?? "Unknown") // "Istanbul" ``` `ceo` veya `address` nil ise `city` nil olur.

Zincirleme Yoluyla Yöntem Çağırma

Yöntemler de isteğe bağlı zincirleme yoluyla çağrılabilir: ```swift var name: String? = "alice" let upper = name?.uppercased() // Optional("ALICE") name = nil let upper2 = name?.uppercased() // nil ``` Dönüş türü isteğe bağlı olur: `String`, `String?` haline gelir.

Zincirleme Yoluyla Alt İndisler

```swift var dict: [String: [Int]]? = ["scores": [10, 20, 30]] let first = dict?["scores"]?[0] // Optional(10) dict = nil let none = dict?["scores"]?[0] // nil ``` Alt indisler, zincirde özellikler ve yöntemlerle aynı şekilde çalışır.

Zincirleme Bir İsteğe Bağlı Değer Üretir

Sonuçta elde edilen değer isteğe bağlı olmasa bile zincirleme onu isteğe bağlı bir değerle sarar: ```swift struct Cat { var lives: Int = 9 } var cat: Cat? = Cat() let lives = cat?.lives // Int? not Int ``` Gerektiğinde `??`, `if let` veya `guard let` ile açın.

Zincirleme ile değer ayarlama

İsteğe bağlı zincirler üzerinden özellikleri ayarlayabilirsiniz: ```swift var profile: UserProfile? = UserProfile() profile?.name = "Alice" ``` `profile` nil ise atama sessizce yok sayılır (çökme olmaz).

Zincirleme ile değer döndürmeyen yöntemleri çağırma

```swift var manager: SoundManager? manager?.play() // silently ignored if nil ``` Çağrı `Void?` döndürür — değer nil değilse `()`, opsiyonel nil ise `nil` döner. Çağrının gerçekleşip gerçekleşmediğini anlamak için sonucu denetleyebilirsiniz.

Opsiyonel zincirleme ve zorunlu açma karşılaştırması

```swift // Forced unwrap — crashes if nil: let city = alice.address!.city // Optional chaining — safe: let city = alice.address?.city ``` Her zaman opsiyonel zincirlemeyi tercih edin. `nil` değerinin oluşamayacağından emin olduğunuz durumlar dışında `!` kullanmayın.

Varsayılanlar için ?? ile birleştirme

Temiz varsayılanlar elde etmek için opsiyonel zincirlemenin ardından `??` ekleyin: ```swift let displayCity = user.profile?.address?.city ?? "Unknown City" let count = database?.records?.count ?? 0 ``` Zincirin tamamı ya bir değere ulaşır ya da varsayılan değere geri döner.

Kısa denetim

Opsiyonel zincirdeki herhangi bir bağlantı `nil` ise ifadenin tamamı ne döndürür?

Özet

Önemli noktalar: • `?.` ile opsiyonellerin özelliklerine ve alt simgelerine güvenle erişebilir, yöntemlerini çağırabilirsiniz • Herhangi bir bağlantı nil ise zincirin tamamı nil döndürür • Sonuç türü, son değer normalde opsiyonel olmasa bile her zaman opsiyoneldir • Güvenli erişim + varsayılan kalıpları için `?.` ile `??` işaretlerini birleştirin • Çökmeleri önlemek için `!` yerine `?.` kullanmayı tercih edin Sıradaki konu: örtük olarak açılan opsiyoneller.

Sıkça Sorulan Sorular

“Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci” dersi ücretsiz mi?

Evet — “Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci” 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.

“Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci” dersinde ne öğreneceğim?

Çökmeye neden olmadan seçenekli değerler üzerindeki yöntemleri çağırın ve özelliklere erişin. 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.

“Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci” 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

  1. if let ve guard let Bağlama
  2. Seçenekli Değerlerde Nil Birleştirme ve Üçlü İşleç
  3. Seçenekli Değerlerde İsteğe Bağlı Zincirleme ?. İşleci
  4. Örtük Açılmış Seçenekli Değerler ve Bunlardan Kaçınılması Gereken Durumlar
← Swift Academy Sayfasına Dön