Sobes.tech
Junior

Ի՞նչ են հղման տեսակները։

sobes.tech AI

Պատասխան AI-ից

Հղման տեսակները (Reference Types) այն տվյալների տեսակներն են, որոնք նշանակման կամ փոխանցման ժամանակ փոխանցում են օբյեկտի օրինակին հղում հիշողության մեջ, ոչ թե նրա պատճենը:

Հիմնական առանձնահատկությունները՝

  • Բազմաթիվ փոփոխականներ կարող են հղում ունենալ նույն օբյեկտի օրինակին:
  • Օբյեկտի վիճակի փոփոխությունը մեկ հղումով արտացոլվում է բոլոր մյուս հղումներում:
  • Հղման տեսակների աշխատանքը կատարվում է ցուցիչների միջոցով, որոնք հղում են օբյեկտներին heap-ում:

Swift-ում հղման տեսակների օրինակներ՝

  • Սինֆոն (class)
  • Ֆունկցիաներ (func)
  • Կապեր ({...})

Համեմատության համար՝ արժեքային տեսակների (Value Types) հետ՝

Գծագիր Հղման տեսակ (Reference Type) Արժեքային տեսակ (Value Type)
Ինչ է փոխանցվում Հղում (հիշողության հասցե) Արժեքի պատճենը
Տեղի պահպանում Heap Stack
Կոպիա Հղումը կոպիրվում է Արժեքը կոպիրվում է
Փոփոխություն Տարածում է սկզբնական օբյեկտին Տարածում է պատճենին
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Օբյեկտի օրինակ ստեղծում
var object2 = object1          // object2 այժմ հղում է նույն օրինակին, ինչ object1

print(object1.value) // Արտածում՝ 10
print(object2.value) // Արտածում՝ 10

object2.value = 20 // Փոփոխություն object2-ով

print(object1.value) // Արտածում՝ 20 (փոփոխությունը object2-ով ազդել է object1-ի վրա)
print(object2.value) // Արտածում՝ 20

Հիշողության կառավարումը Swift-ում կատարվում է Automatic Reference Counting (ARC) միջոցով։