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.