Sobes.tech
Junior — Middle

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

sobes.tech AI

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

Swift-ում դասերը ունեն մի շարք առանձնահատկություններ, որոնք չունեն կառուցվածքները:

  • Երասխություն: դասերը կարող են ժառանգել այլ դասերից, ինչը թույլ է տալիս ստեղծել հիերարխիաներ և վերագրել մեթոդներ:
  • Deinitializer-ներ (deinit): դասերը կարող են ունենալ deinitializer-ներ, որոնք ազատում են ռեսուրսները, երբ օրինակն ջնջվում է:
  • Հղման տեսակ: դասերը փոխանցվում են հղումով, մինչդեռ կառուցվածքները՝ արժեքով:
  • Արժեքների տեսակներ: դասերը կարող են ունենալ հատկություններ, որոնք հղումներ են օբյեկտներին, ինչը ազդում է հիշողության կառավարմանը:
  • Հնարավորություն օգտագործել weak և unowned հղումներ՝ ուժեղ հղումային շրջանների կանխարգելման համար:

Օրինակ՝ դաս, որը ունի deinitializer:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) վերականգնվում է")
    }
}