【发布时间】:2020-04-05 22:33:56
【问题描述】:
我是 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() 参数是可选的?如果您能指出我要搜索的术语或概念的方向,那就太好了。
【问题讨论】: