Middle
Standart massiv kolleksiyaları dəyər növləri və istinad növləridir?
sobes.tech Süni İntellekt
AI-dan cavab
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)