Sobes.tech
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)