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 (), где параметры являются необязательными? Если бы вы могли указать мне в направлении терминов или понятий для поиска, было бы здорово.