Класс ичинде кандай түрдөгү куруучулар ишке ашырылат жана алар эмнеге айырмаланат?
sobes.tech AI
AIден жооп
Swift классынын ичинде адатта төмөнкү түрдөгү куруучулар (баштапкы) ишке ашырылат:
-
Демейки баштапкы (default initializer) — бардык мүнөздөмөлөрдүн алдын ала белгиленген маанилери болсо жана башка баштапкы жок болсо, автоматтык түрдө түзүлөт.
-
Параметрлер менен баштапкы (designated initializer) — негизги баштапкы, ал бардык класстун мүнөздөмөлөрүн баштайт. Класс ичинде башка баштапкыларды чакыруу
self.initаркылуу жүргүзүлөт. -
Ыңгайлуу баштапкылар (convenience initializer) — жардамчы баштапкылар, алар designated баштапкыны чакырат. Алар объекттерди ар кандай параметрлер менен түзүүнү жеңилдетүү үчүн колдонулат.
Атайын айырмачылыктар:
- Designated баштапкылар бардык мүнөздөмөлөрдү баштайт жана суперкласс баштапкыларын чакырат.
- Convenience баштапкылар ошол эле класстагы башка баштапкыларды чакырат жана түздөн-түз мүнөздөмөлөрдү баштай албайт.
Мисал:
class Person {
var name: String
var age: Int
// Designated баштапкы
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Convenience баштапкы
convenience init(name: String) {
self.init(name: name, age: 0) // designated чакыруу
}
}
Ушул жол менен, куруучулар объекттерди ар кандай параметрлер менен түзүүдө ийкемдүүлүк камсыз кылат жана бардык мүнөздөмөлөрдүн туура башталуусун кепилдейт.