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) միջոցով։