Junior
Değer tipi bir nesne oluşturduğumuzda değişken tam olarak ne tutar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift'te değer tipi (yapı, enum, tuple) türünde bir nesne oluşturduğumuzda, değişken bu nesnenin verilerinin kopyasını doğrudan bellekte tutar. Böyle bir nesnenin ataması veya parametre olarak iletimi, içeriğinin kopyasını oluşturur.
Örnekler:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2) // p1 değişkeni, verilerin bir kopyasını tutar (x=1, y=2)
var p2 = p1 // p2, p1'in verilerinin bir kopyasını alır. Bunlar bağımsız kopyalardır.
p1.x = 10 // Sadece p1.x değiştirilir
print(p2.x) // 1 yazdırır, çünkü p2 değişmedi
Referans tipi (sınıf) ile karşılaştırma:
| Özellik | Değer Tipi (yapı, enum) | Referans Tipi (sınıf) |
|---|---|---|
| Değişkende ne saklanır | Nesnenin verilerinin kopyası | Bellekteki nesneye referans |
| Atama / Geçiş | Verilerin kopyası | Referansın kopyası (aynı nesneye işaret eder) |
| Değişiklik | Sadece mevcut kopyayı etkiler | İşaret ettiği nesneyi etkiler (başka değişkenleri de etkileyebilir) |