Swift Struktur mit optionalen gespeicherten Eigenschaften initialisieren

Ich bin ein schneller Neuling und versuche, mich mit Structs mit optionalen Eigenschaften zurechtzufinden. Ich habe ziemlich viel gesucht und etwas gefunden, das funktioniert, aber es fühlt sich unglaublich ineffizient an, und ich frage mich, ob es einen besseren / besser handhabbaren Weg gibt, mein Ziel zu erreichen.

Ich würde gerne Structs verwenden, um ein Unternehmen darzustellen, aber ich habe keine Ahnung, welche Eigenschaftskombination ein bestimmtes Unternehmen wahrscheinlich hat. Dies scheint zu bedeuten, dass ich für jede mögliche Kombination von Parametern ein init () erstellen muss.

Hier ist ein vereinfachtes Beispiel (ich habe viel mehr Eigenschaften):

import Foundation

struct Business {
    let name : String
    var web : String?
    var address: String?

    // just the business name
    init(busName: String) {
        self.name = busName
    }

    // business name + website
    init(busName: String, website: String) {
        self.name = busName
        self.web = website
    }

    // business name + address
    init(busName: String, address: String) {
        self.name = busName
        self.address = address
    }

    // business name + website + address
    init(busName: String, website: String, address: String) {
        self.name = busName
        self.web = website
        self.address = address
    }
}

Ich kann die Klasse dann folgendermaßen initialisieren:

Business(busName: "Dave's Cafe", website: "http://www.davescafe.com")

Business(busName: "Sarah's Brewhouse", address: "41 Acacia Ave, Smalltown")

Ist es nicht möglich, irgendeine Art von init () zu erstellen, bei der die Parameter optional sind? Wenn Sie mich auf Begriffe oder Konzepte hinweisen könnten, um danach zu suchen, wäre das großartig.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage