Swift Initialize Struct com propriedades armazenadas opcionais
Sou novato no Swift e estou tentando entender o Structs com propriedades opcionais. Pesquisei bastante e consegui algo que funcione, mas parece incrivelmente ineficiente, de modo que me perguntei se havia uma maneira melhor / mais gerenciável de alcançar meu objetivo.
Gostaria de usar o Structs para representar um negócio, mas não tenho idéia antecipada de qual combinação de propriedades provavelmente um negócio específico terá. Isso parece significar que eu tenho que criar um init () para todas as combinações possíveis de parâmetros.
Aqui está um exemplo simplificado (eu tenho muitas outras propriedades):
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
}
}
Posso então inicializar a classe assim:
Business(busName: "Dave's Cafe", website: "http://www.davescafe.com")
Business(busName: "Sarah's Brewhouse", address: "41 Acacia Ave, Smalltown")
Não há como criar algum tipo de init () em que os parâmetros sejam opcionais? Se você pudesse me apontar na direção de termos ou conceitos para pesquisar, seria ótimo.