Sobes.tech
Junior — Middle

Kuras operācijas vai īpašības ir pieejamas, definējot klasi, kas nav struktūrā?

sobes.tech AI

Atbilde no AI

Swift valodā klases ir vairākas īpašības, kuras nav raksturīgas struktūrām:

  • Mantošana: klases var mantot no citām klasēm, kas ļauj veidot hierarhijas un pārrakstīt metodes.
  • Deinitializers (deinit): klases var saturēt deinitializers, kas atbrīvo resursus, kad instances tiek dzēstas.
  • Atsauces tips: klases tiek nodotas ar atsauci, bet struktūras ar vērtību.
  • Īpašību tipi: klases var saturēt īpašības, kas ir atsauces uz objektiem, kas ietekmē atmiņas pārvaldību.
  • Iespēja izmantot weak un unowned atsauces, lai novērstu stipro atsauču ciklus.

Piemērs ar deinitializer:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) tiek deinitializēts")
    }
}