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.

questionAnswers(2)

yourAnswerToTheQuestion