Sobes.tech
Junior — Middle

Класс ичинде кандай түрдөгү куруучулар ишке ашырылат жана алар эмнеге айырмаланат?

sobes.tech AI

AIден жооп

Swift классынын ичинде адатта төмөнкү түрдөгү куруучулар (баштапкы) ишке ашырылат:

  1. Демейки баштапкы (default initializer) — бардык мүнөздөмөлөрдүн алдын ала белгиленген маанилери болсо жана башка баштапкы жок болсо, автоматтык түрдө түзүлөт.

  2. Параметрлер менен баштапкы (designated initializer) — негизги баштапкы, ал бардык класстун мүнөздөмөлөрүн баштайт. Класс ичинде башка баштапкыларды чакыруу self.init аркылуу жүргүзүлөт.

  3. Ыңгайлуу баштапкылар (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 чакыруу
    }
}

Ушул жол менен, куруучулар объекттерди ар кандай параметрлер менен түзүүдө ийкемдүүлүк камсыз кылат жана бардык мүнөздөмөлөрдүн туура башталуусун кепилдейт.