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.