Sobes.tech
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)