Middle
Standart dizi koleksiyonları değer tipleri ve referans tipleri midir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift'te (Array) diziler yapılar (struct)dır ve yapılar değer tipleridir (Value Types). Bir dizi ataması veya iletimi sırasında, dizinin bir kopyası oluşturulur.
Ancak, performansı optimize etmek için, kopyalama sistemi Copy-on-Write davranışına sahiptir. Bu, dizinin gerçek veri kopyasının, kopyalardan birinin ilk değiştirilmesi sırasında gerçekleştiği anlamına gelir. Bu noktaya kadar, her iki kopya da aynı veri deposunu paylaşır.
Değer tipleri: Struct, Enum, Int, String, Double, Bool. Referans tipleri: Class, Function, Closure.
Copy-on-Write'ı gösteren örnek:
var initialArray = [1, 2, 3]
var copiedArray = initialArray // Henüz gerçek veri kopyası yok
print(initialArray[0]) // 1
print(copiedArray[0]) // 1
copiedArray[0] = 10 // Burada gerçek veri kopyası gerçekleşir
print(initialArray[0]) // 1 (orijinal dizi değişmedi)
print(copiedArray[0]) // 10 (sadece kopyalanan sürüm değişti)