Middle
როგორ შეიძლება დაამატოთ თქვენი საკუთარი ინიციალიზატორი სტრუქტურაში, დატოვეთ დეფოლტული ინიციალიზატორი?
sobes.tech AI
პასუხი AI-სგან
პარამეტრის მიხედვით, Swift-ის სტრუქტურებს ავტომატური წევრის ინიციალიზატორი მიენიჭებათ, თუ საკუთარი ინიციალიზატორი არ გაქვთ განსაზღვრული. თუ დაამატებთ ნებისმიერ ინიციალიზატორს, ავტომატური წევრის ინიციალიზატორი არ იქნება ხელმისაწვდომი.
შეინარჩუნეთ ავტომატური წევრის ინიციალიზატორი, როდესაც დაამატებთ საკუთარი ინიციალიზატორები, მათ შეიძლება ჩასვათ extension-ის (გაფართოება) ფარგლებში. Extension-ში განსაზღვრული ინიციალიზატორები ავტომატურ ინიციალიზატორს არ გაუქმებს.
struct Person {
let name: String
let age: Int
}
extension Person {
// თქვენი ინიციალიზატორი
init(name: String) {
self.name = name
self.age = 0 // სტანდარტული მნიშვნელობა
}
}
// ავტომატური ინიციალიზატორის გამოყენება
let john = Person(name: "John", age: 30)
// თქვენი ინიციალიზატორის გამოყენება extension-დან
let jane = Person(name: "Jane")
print(john)
print(jane)