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