Ի՞նչ տեսակների կոնստրուկտորներ են իրականացվում դասում և ինչո՞վ են նրանք տարբերվում:
sobes.tech AI
Պատասխան AI-ից
Swift դասի մեջ սովորաբար իրականացվում են հետևյալ տեսակի կոնստրուկտորներ (սկիզբնականներ).
-
Նախնական ինիցիալիզատոր (default initializer) — ավտոմատ ստեղծվում է, եթե բոլոր հատկությունները ունեն նախնական արժեքներ և այլ ինիցիալիզատորներ չկան։
-
Պարամետրերով ինիցիալիզատոր (designated initializer) — հիմնական ինիցիալիզատոր, որը ինիցիալիզացնում է բոլոր դասի հատկությունները։ Այլ ինիցիալիզատորների կանչը կատարվում է
self.init-ի միջոցով։ -
Հարմար ինիցիալիզատորներ (convenience initializer) — օժանդակ ինիցիալիզատորներ, որոնք կանչում են հիմնական ինիցիալիզատորը։ Օգտագործվում են տարբեր պարամետրային հավաքածուներով օբյեկտներ ստեղծելու համար։
Տարբերություններ՝
- 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) // կանչ է հիմնականին
}
}
Այսպիսով՝ կոնստրուկտորները ապահովում են ճկունություն օբյեկտների տարբեր պարամետրերով ինիցիալիզացման համար և երաշխավորում են բոլոր հատկությունների ճիշտ ինիցիալիզացիան։