0Pricing
Swift Academy · Ders

Makro Rolleri: Bağımsız ve Ekli

#expression makrolarını ve @attached peer/member/accessor makro rollerini anlayın.

Makro Rolleri: Bağımsız ve Ekli, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. 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.

Swift macro Nedir?

Swift macro, kaynak kodunu derleme zamanında genişleterek çalışma zamanı ek yükü olmadan standart kodu otomatik olarak üretir.

// Macros are invoked with # (freestanding) or @ (attached)
#warning("Fix this later")
@Observable class Counter { var count = 0 }

Bağımsız İfade macro'ları

Bağımsız ifade macro'ları # ile başlar ve bir değer üretir veya yan etki oluşturur.

// #stringify expands to a tuple of the value and its source string
let (val, src) = #stringify(1 + 2)
print(val, src) // 3, "1 + 2"

Bağımsız Bildirim macro'ları

Bağımsız bildirim macro'ları, kullanım konumunda yeni bildirimler (ör. işlevler ve değişkenler) üretir.

// #makePair emits two variables
#makePair("point", x: 1, y: 2)
// expands to: let pointX = 1; let pointY = 2

Ekli Üye macro'ları

Ekli @member macro'ları, eklendikleri türe yeni saklanan/hesaplanan özellikler, başlatıcı veya yöntemler ekler.

@AddID
struct User { var name: String }
// Expands to: var id = UUID()

Ekli Erişimci macro'ları

Ekli @accessor macro'ları, saklanan özellikler için alıcı ve ayarlayıcı uygulamaları üretir.

struct Point {
  @Clamped(0...100)
  var x: Int = 0
  // accessor macro generates get/set with clamping
}

Ekli Eş macro'ları

Eş macro'ları, eklendikleri bildirimin yanına kardeş bildirimler ekler.

class Service {
  @AddAsync
  func fetchSync(completion: @escaping (Data)->Void) { ... }
  // peer macro adds: func fetch() async -> Data
}

Ekli Uyumluluk macro'ları

Uyumluluk macro'ları, bir türe protokol uyumlulukları ve gerekli uygulamaları ekler.

@EquatableByID
struct Product { var id: Int; var name: String }
// adds: extension Product: Equatable { ... }

Ekli Genişletme macro'ları

Genişletme macro'ları, bir tür için tüm genişletme bloklarını üretir; bu, karmaşık protokol uygulamaları eklemek için kullanışlıdır.

@CustomCodable
struct Config { var host: String; var port: Int }
// adds: extension Config: Codable { custom encode/decode }

macro Genişletmesi Derleme Zamanında Gerçekleşir

Tüm macro genişletmeleri derleme sırasında gerçekleşir; çalışma zamanı maliyeti yoktur ve genişletilmiş kod Xcode'da görülebilir.

// Right-click macro usage in Xcode → "Expand Macro"
// to see the generated source code

macro Bildirme

macro'lar, ayrı bir macro hedefinde @freestanding veya @attached özniteliği kullanılarak bildirilir.

@freestanding(expression)
public macro stringify<T>(_ value: T) -> (T, String)
  = #externalMacro(module: "MyMacros", type: "StringifyMacro")

macro Rollerinin Özeti

Bağımsız: #expression, #declaration. Ekli: @member, @accessor, @peer, @conformance, @extension.

// Freestanding
let result = #stringify(40 + 2)
// Attached
@Observable class Model { var count = 0 }

Kısa Kontrol

Hangi macro rolü, süslediği türe yeni üyeler (özellikler veya başlatıcı gibi) ekler?

Ders Özeti

Bağımsız macro'lar (#name) değerler veya bildirimler üretir. Ekli macro'lar (@name), türleri üyeler, erişimciler, eşler, uyumluluklar veya genişletmelerle zenginleştirir. Tüm genişletmeler derleme zamanında gerçekleşir.

Sıkça Sorulan Sorular

“Makro Rolleri: Bağımsız ve Ekli” dersi ücretsiz mi?

Evet — “Makro Rolleri: Bağımsız ve Ekli” 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.

“Makro Rolleri: Bağımsız ve Ekli” dersinde ne öğreneceğim?

#expression makrolarını ve @attached peer/member/accessor makro rollerini 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, 4 dersinin 1. dersidir.

“Makro Rolleri: Bağımsız ve Ekli” 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. Makro Rolleri: Bağımsız ve Ekli
  2. Bağımsız İfade Makrosu Yazma
  3. Kalıp Kodu Azaltmak için Ekli Üye Makroları
  4. Makroları Sınama ve Hatalarını Ayıklama
← Swift Academy Sayfasına Dön