Junior — Middle
Değer ve referans tipleri için veri kopyalama sırasında farklar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Değer türleri (value types) ve referans türleri (reference types) verilerin kopyalanma şeklinde farklılık gösterir:
- Değer türleri: Kopyalama sırasında, verilerin tam bağımsız bir kopyası oluşturulur. Kopyadaki değişiklikler orijinali etkilemez.
- Referans türleri: Kopyalama sırasında, aynı nesneye referans kopyalanır. Bir referans aracılığıyla yapılan değişiklikler tüm referanslara yansır.
Örneğin, iOS'ta yapılar (struct) değer türleri, sınıflar (class) ise referans türleridir.
Swift'te örnek:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
// p1.x == 0, p2.x == 10 — bağımsız kopyalar
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — aynı nesneye iki referans