0Pricing
Swift Academy · Ders

Dolaylı Sıralı Türler ve Özyinelemeli Yapılar

indirect sıralı tür durumlarıyla bağlı listeler ve ağaçlar oluşturun.

Dolaylı Sıralı Türler ve Özyinelemeli Yapılar, 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

Bir `indirect` enum durumu, ilişkili değerini bir işaretçinin arkasında saklar ve bağlı listeler, ağaçlar ve ifade ağaçları gibi özyinelemeli veri yapılarının oluşturulmasını sağlar.

indirect Neden Gereklidir

`indirect` olmadan kendisine başvuran bir enum sonsuz boyuta sahip olur: ```swift enum List { case empty case node(T, List) // ❌ recursive without size bound } ``` `indirect`, yığın belleğinde bir ayırma yaparak boyutun yalnızca bir işaretçi olmasını sağlar.

indirect Enum Tanımlama

```swift indirect enum List { case empty case node(T, List) } let list = List.node(1, .node(2, .node(3, .empty))) // [1, 2, 3] ```

İkili Ağaç Örneği

```swift indirect enum Tree { case leaf case branch(left: Tree, value: T, right: Tree) } let t = Tree.branch(left: .leaf, value: 5, right: .branch(left:.leaf, value:10, right:.leaf)) ```

indirect Enum Üzerinde Özyinelemeli İşlev

```swift func sum(_ list: List) -> Int { switch list { case .empty: return 0 case .node(let value, let rest): return value + sum(rest) } } print(sum(list)) // 6 ```

Ağaç Yüksekliği

```swift func height(_ tree: Tree) -> Int { switch tree { case .leaf: return 0 case .branch(let l, _, let r): return 1 + max(height(l), height(r)) } } ```

İfade Ağaçları

```swift indirect enum Expr { case num(Double) case add(Expr, Expr) case mul(Expr, Expr) } func eval(_ e: Expr) -> Double { switch e { case .num(let n): return n case .add(let a, let b): return eval(a) + eval(b) case .mul(let a, let b): return eval(a) * eval(b) } } print(eval(.mul(.num(2), .add(.num(3), .num(4))))) // 14 ```

Durum Bazında indirect

Tüm enum yerine yalnızca özyinelemeli durumları `indirect` olarak işaretleyebilirsiniz: ```swift enum Tree { case leaf indirect case branch(left: Tree, value: T, right: Tree) } ``` Bu yaklaşım daha özeldir; yığın belleği ayırma işlemi yalnızca özyinelemeli durum için yapılır.

Performansla İlgili Noktalar

`indirect` durumları yığın belleğinde ayrılır. Performans açısından kritik özyinelemeli yapılar için bir sınıf kullanmayı veya bunun yerine dizi tabanlı bir gösterime başvurmayı değerlendirin.

indirect Enum'lar Ne Zaman Kullanılır

Uygun kullanım alanları: • Bağlı listeler ve işlevsel veri yapıları • Soyut Söz Dizimi Ağaçları (ayrıştırıcılar, hesap makineleri) • Dosya sistemi hiyerarşileri • JSON/XML ağaç gösterimleri Düz, dizi tabanlı gösterimler önbellek açısından daha verimliyse kullanmaktan kaçının.

Kısa Sınama

`indirect`, bir enum durumuna ne ekler?

Özet

Temel çıkarımlar: • `indirect enum` veya `indirect case`, özyinelemeli türleri mümkün kılar • Özyinelemeli değer türleri sonsuz boyuta sahip olacağından gereklidir • Bağlı listeler, ağaçlar ve AST'ler için kullanılır • Özyinelemeli işlevler ve switch ile dolaşılır • Durum başına `indirect`, tüm enum'u `indirect` olarak işaretlemekten daha özeldir Sıradaki konu: enum'larla durum makinelerini modelleme.

Sıkça Sorulan Sorular

“Dolaylı Sıralı Türler ve Özyinelemeli Yapılar” dersi ücretsiz mi?

Evet — “Dolaylı Sıralı Türler ve Özyinelemeli Yapılar” 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.

“Dolaylı Sıralı Türler ve Özyinelemeli Yapılar” dersinde ne öğreneceğim?

indirect sıralı tür durumlarıyla bağlı listeler ve ağaçlar oluşturun. 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.

“Dolaylı Sıralı Türler ve Özyinelemeli Yapılar” 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. Ham Değerler ve CaseIterable
  2. Zengin Veriler için İlişkili Değerler
  3. Dolaylı Sıralı Türler ve Özyinelemeli Yapılar
  4. Sıralı Türlerle Durum Makinelerini Modelleştirme
← Swift Academy Sayfasına Dön