Sobes.tech
Junior — Middle

Swift dilinde referans ve değer tipi arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te veri tipleri, değer tipleri (value types) ve referans tipleri (reference types) olarak ayrılır.

  • Değer tipleri (örneğin, struct, enum, tuple'lar) atama veya fonksiyona geçirme sırasında kopyalanır. Bu, her değişkenin kendi bağımsız kopyasına sahip olduğu anlamına gelir.

  • Referans tipleri (sınıflar class) atama veya geçirme sırasında aynı nesneye referans iletilir. Bir referans aracılığıyla yapılan değişiklikler diğerleri tarafından da görülebilir.

Örnek:

struct Point {
    var x: Int
    var y: Int
}

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
print(p1.x) // 0, çünkü p2, p1'in bir kopyasıdır

var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob, çünkü person2 ve person1 aynı nesneye referans eder

Bu nedenle, fark, değer tiplerinin kopyalanması, referans tiplerinin ise aynı nesneye referans iletilmesidir.