Middle
Ստանդարտ զանգվածային հավաքածուները արժեքի և հղման տեսակներ են?
sobes.tech AI
Պատասխան AI-ից
Swift- ում (Array) զանգվածները (Array) կառուցվածքներ (struct) են, և կառուցվածքները արժեքի տեսակներ (Value Types) են։ Երբ զանգվածը նշանակվում կամ փոխանցվում է, նրա պատճենը ստեղծվում է։
Այնուամենայնիվ, կատարողականությունը օպտիմալացնելու համար, զանգվածների պատճենման համակարգը ունի Copy-on-Write վարքագիծ։ Դա նշանակում է, որ իրական տվյալների պատճենը տեղի է ունենում միայն առաջին փոփոխության ժամանակ։ Այդ պահից մինչ այդ, երկու պատճեններն էլ նույն տվյալների պահոցը օգտագործում են։
արժեքի տեսակներ՝ Struct, Enum, Int, String, Double, Bool։ հղման տեսակներ՝ Class, Function, Closure։
Copy-on-Write- ի նկարագրող օրինակ՝
var initialArray = [1, 2, 3]
var copiedArray = initialArray // Արդեն չկա իրական տվյալների պատճեն
print(initialArray[0]) // 1
print(copiedArray[0]) // 1
copiedArray[0] = 10 // Այստեղ տեղի է ունենում իրական տվյալների պատճենը
print(initialArray[0]) // 1 (մասիվը սկզբնականը չի փոխվել)
print(copiedArray[0]) // 10 (միայն պատճենված տարբերակը փոխվել է)