Sobes.tech
Middle

Ինչպե՞ս կարելի է ավելացնել սեփական ինիցիալիզատորը կառուցվածքին՝ թողնելով նախնական ինիցիալիզատորը:

sobes.tech AI

Պատասխան AI-ից

Նախնական կարգով, Swift-ի կառուցվածքները ստանում են ավտոմատ անդամային սկզբնականիչ, եթե դուք ոչ մի սեփական սկզբնականիչ չեք սահմանում: Եթե ավելացնեք որևէ սկզբնականիչ, ավտոմատ անդամային սկզբնականիչը չի տրամադրվում:

Որպեսզի պահպանեք ավտոմատ անդամային սկզբնականիչը՝ սեփական սկզբնականիչներ ավելացնելիս, կարող եք դրանք տեղադրել ընդլայնման (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)

// Օգտագործում ձեր սեփական սկզբնականիչը ընդլայնումից
let jane = Person(name: "Jane")

print(john)
print(jane)