Sobes.tech
Junior — Middle

Millised toimingud või omadused on saadaval klassi määratlemisel, mida struktuuris ei ole?

sobes.tech AI

Vastus AI-lt

Swiftis on klassidel mitmeid omadusi, mida struktuurid ei oma:

  • Pärimine: klassid võivad pärida teistelt klassidelt, võimaldades luua hierarhiaid ja meetodeid üle kirjutada.
  • Deinitializers (deinit): klassidel võivad olla deinitializers, mis vabastavad ressursid, kui eksemplar kustutatakse.
  • Viidatüüp: klassid edastatakse viitega, struktuurid väärtusena.
  • Omaduste tüübid: klassidel võivad olla omadused, mis on viited objektidele, mis mõjutab mälu haldamist.
  • Võimalus kasutada weak ja unowned viiteid: tugevate viidete tsüklite vältimiseks.

Näide klassist deinitializeriga:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) deinitialiseerub")
    }
}