Sobes.tech
Junior — Middle

Ի՞նչ այլ տվյալների տեսակներ, բացի դասերից, համարվում են հղման տեսակներ ծրագրավորման լեզվում։

sobes.tech AI

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

Swift լեզվում, բացի դասերից, ռեֆերենցիոն տիպերը ներառում են.

  • Կապեր (Closures) — ֆունկցիաներ, որոնք կարող են բռնել և պահել շրջակա կոնտեքստից փոփոխականների հղումները:
  • Ֆունկցիաներ — Swift-ում ֆունկցիաները ռեֆերենցիոն տիպեր են:
  • Որոշ Objective-C տիպեր, օրինակ Foundation օբյեկտներ (NSString, NSArray և այլն) — դրանք իրականացված են որպես դասեր և ռեֆերենցիոն տիպեր:

Տարբերություն կառուցվածքների և ցուցակների հետ, որոնք արժեքային տիպեր են, ռեֆերենցիոն տիպերը փոխանցվում են հղումով, այսինքն՝ նշանակման կամ ֆունկցիային փոխանցման ժամանակ, նույն օբյեկտի հղումը պատճենվում է, ոչ թե նրա պատճենը:

Օրինակ՝

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let person1 = Person(name: "Alice")
let person2 = person1
person2.name = "Bob"
print(person1.name) // Տպում է "Bob", քանի որ person1 և person2 հղում են նույն օբյեկտին