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)