Middle
Standart massiv to'plamlari qiymat turlari va referens turlarimi?
sobes.tech AI
AIdan javob
Swift'də (Array) massivlər (Array) strukturlardır (struct), və strukturlar dəyər növləridir (Value Types). Bir massiv təyin edilərkən və ya ötürülərkən, onun nüsxəsi yaradılır.
Ancaq performansı optimallaşdırmaq üçün, nüsxə sistemi Copy-on-Write davranışına malikdir. Bu, massiv məlumatlarının faktiki nüsxəsinin, nüsxələrdən birinin ilk dəyişdirilməsi zamanı baş verdiyi anlamına gəlir. Bu vaxta qədər, hər iki nüsxə eyni məlumat saxlamağı paylaşır.
Dəyər növləri: Struct, Enum, Int, String, Double, Bool. İstinad növləri: Class, Function, Closure.
Copy-on-Write-ı izah edən nümunə:
var initialArray = [1, 2, 3]
var copiedArray = initialArray // Hələ faktiki məlumat nüsxəsi yoxdur
print(initialArray[0]) // 1
print(copiedArray[0]) // 1
copiedArray[0] = 10 // Burada faktiki məlumat nüsxəsi yaranır
print(initialArray[0]) // 1 (orijinal massiv dəyişməyib)
print(copiedArray[0]) // 10 (yalnız kopyalanmış versiya dəyişib)