Swift Initialize Struct с дополнительными сохраненными свойствами

Я новичок в Swift, и я пытаюсь разобраться, используя Structs с дополнительными свойствами. Я провел немало поисков и получил что-то, что работает, но он кажется невероятно неэффективным, поэтому удивляюсь, есть ли лучший / более управляемый способ достижения моей цели.

Я хотел бы использовать Structs для представления бизнеса, но я заранее не знаю, какое сочетание свойств может иметь какой-либо конкретный бизнес. Кажется, это означает, что мне нужно создать init () для каждой возможной комбинации параметров.

Вот упрощенный пример (у меня есть еще много свойств):

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
    }
}

Затем я могу инициализировать класс следующим образом:

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

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

Нет ли способа создать какую-то функцию init (), где параметры являются необязательными? Если бы вы могли указать мне в направлении терминов или понятий для поиска, было бы здорово.

Ответы на вопрос(2)

Ваш ответ на вопрос