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)