0Pricing
Swift Academy · Ders

Struct ve Class karşılaştırması, özellikler ve başlatıcılar

Değer ve başvuru anlamlarını karşılaştırın; saklanan ve hesaplanan özellikleri, özellik gözlemcilerini, başlatıcıları ve sınıf deinit işlemini kullanın.

Struct ve Class karşılaştırması, özellikler ve başlatıcılar, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 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 3 dersten oluşur.

Genel bakış

Swift'in iki ana bileşik türü vardır: yapı (değer) ve sınıf (başvuru).

  • Yapılar atama sırasında kopyalanır
  • Sınıflar başvuruları paylaşır

Değer ve başvuru

Yapılar değerleri kopyalar; sınıflar başvuruları paylaşır. b'yi değiştirmek a'yı etkilemez, ancak d, c'yi etkiler.

struct Point { var x = 0, y = 0 }
class CPoint { var x = 0, y = 0 }

var a = Point(x: 1, y: 1)
var b = a          // copy
b.x = 9
print("struct a.x =", a.x, "b.x =", b.x) // 1, 9

let c = CPoint(); c.x = 1
let d = c          // same reference
d.x = 9
print("class c.x =", c.x, "d.x =", d.x) // 9, 9

Özellikler

Saklanan özellikler verileri tutar; hesaplanan özellikler erişim sırasında değerleri türetir.

struct Rectangle {
    var width: Double      // stored
    var height: Double     // stored
    var area: Double {     // computed
        return width * height
    }
}
let r = Rectangle(width: 3, height: 4)
print(r.area)  // 12

Gözlemleyiciler

Saklanan özelliklerdeki değişiklikleri gözlemlemek için willSet/didSet kullanın.

struct Counter {
    var value: Int = 0 {
        willSet { print("will set to", newValue) }
        didSet  { print("did set from", oldValue) }
    }
}
var cnt = Counter()
cnt.value = 5

Başlatıcılar

Yapılar bir üye bazlı başlatıcı edinir. Sınıflar init (belirlenmiş) tanımlar ve kolaylık sağlayan başlatıcılar ekleyebilir.

struct User {
    var name: String
    // memberwise init is synthesized: User(name:)
}
class Person {
    var name: String
    init(name: String) {    // designated
        self.name = name
    }
    convenience init() {    // convenience
        self.init(name: "Guest")
    }
}
let u = User(name: "Ada")
let p = Person()
print(u.name, p.name)

deinit

Yalnızca sınıflar deinit özelliğine sahiptir; bu özellik örnek serbest bırakıldığında çağrılır (ARC).

class Temp {
    let id: Int
    init(id: Int) { self.id = id }
    deinit { print("Temp \\(id) deinit") }
}
do {
    let t = Temp(id: 1)
    print("using", t.id)
} // t goes out of scope and deinit may run

Yapı ve sınıf sorusu

Hızlı kontrol: Yapılarla sınıflar arasındaki farkı doğru biçimde açıklayan ifade hangisidir?

Özet

Özet: Basit veriler için yapı kullanmayı tercih edin (değer anlamı). Paylaşılan kimlik, kalıtım ve deinit için sınıf kullanın. Saklanan veya hesaplanan özellikler, gözlemleyiciler ve uygun başlatıcılar ekleyin.

Sıkça Sorulan Sorular

“Struct ve Class karşılaştırması, özellikler ve başlatıcılar” dersi ücretsiz mi?

Evet — “Struct ve Class karşılaştırması, özellikler ve başlatıcı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 3 dersten oluşur.

“Struct ve Class karşılaştırması, özellikler ve başlatıcılar” dersinde ne öğreneceğim?

Değer ve başvuru anlamlarını karşılaştırın; saklanan ve hesaplanan özellikleri, özellik gözlemcilerini, başlatıcıları ve sınıf deinit işlemini kullanı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 1. dersidir.

“Struct ve Class karşılaştırması, özellikler ve başlatıcı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. Struct ve Class karşılaştırması, özellikler ve başlatıcılar
  2. Saklanan ve hesaplanan özellikler, gözlemciler
  3. Başlatıcılar ve deinit (sınıflar)
← Swift Academy Sayfasına Dön