Kādi konstruktoru tipi tiek īstenoti klasē un kā tie atšķiras?
sobes.tech AI
Atbilde no AI
Swift klases parasti tiek īsteno šādus konstruktoru (sākotnējo) tipus:
-
Noklusējuma inicializators (default initializer) — tiek automātiski izveidots, ja visas īpašības ir ar noklusējuma vērtībām un nav citu inicializatoru.
-
Ar parametriem (designated initializer) — galvenais inicializators, kas inicializē visas klases īpašības. Citu inicializatoru izsaukšana klasē notiek caur
self.init. -
Ērti inicializatori (convenience initializer) — palīgini inicializatori, kas izsauc galveno inicializatoru. Tie tiek izmantoti, lai vienkāršotu objektu izveidi ar dažādiem parametru komplektiem.
Atšķirības:
- Designated inicializatori inicializē visas īpašības un izsauc superklases inicializatorus.
- Convenience inicializatori izsauc citus tā paša klases inicializatorus un tieši nevar inicializēt īpašības.
Piemērs:
class Person {
var name: String
var age: Int
// Designated inicializators
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Convenience inicializators
convenience init(name: String) {
self.init(name: name, age: 0) // izsauc galveno
}
}
Tādējādi, konstruktoru sniedz elastību, veidojot objektus ar dažādiem parametriem, un nodrošina pareizu visu īpašību inicializāciju.