Junior — Middle
Արդյոք Swift-ը ունի ավտոմատ մաքրում, նման GC-ին այլ լեզուներում?
sobes.tech AI
Պատասխան AI-ից
Swift-ում ավանդական իմաստով ավտոմատ աղբահավաք (GC) չի օգտագործվում, ինչպես Java կամ C#: ի տարբերակ՝ Swift-ը կիրառում է ավտոմատ հղումային հաշվարկման համակարգ (ARC — Automatic Reference Counting): ARC-ը ավտոմատ կերպով հետևում է օբյեկտի հղումների թվին և ազատում է հիշողությունը, երբ հղումները ավարտվում են:
Օրինակ՝
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Ivan")
var person2 = person1 // ավելացնում է հղումների քանակը
person1 = nil // օբյեկտը դեռ կենդանի է, քանի որ person2 հղում է անում
person2 = nil // այժմ օբյեկտը ազատվում է
Այսպիսով, ARC-ը աշխատում է ավտոմատ, բայց առանց ընդհատումների և լրացուցիչ ծախսերի, որոնք բնորոշ են ավանդական աղբահավաքներին։