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)