gpt4 book ai didi

swift - 枚举结构创建

转载 作者:行者123 更新时间:2023-11-30 13:03:44 26 4
gpt4 key购买 nike

我正在使用 Swift 3 进行模型定义。我有两个简单的枚举:

enum CompanyField: String {
case id
case name
}

enum UserField: String {
case email
case id
case id_company
}

当使用集合时,我希望遵循通用类型。类似 Field 的内容,例如:

let fields: [Field : String] = [UserField.id : "1", CompanyField.name : "A name"] 

let fields: [Field] = [UserField.id, CompanyField.name]

我试图创建一个现场协议(protocol)但没有成功。 (例如:enum UserField: Field {})

是否有任何解决方案可以让我的两个枚举符合一种自定义类型?

最佳答案

这可以为您提供一种灵活的方式来表达枚举符合自定义域协议(protocol),并且仍然可以用作字典和数组元素。 但是,这又避免了将不同的枚举类型混合作为字典键:

func map<K,V>(forFields fields: (K,V)...) -> [K:V] where K : Hashable{
var dict = [K:V]()
fields.forEach { (key, value) in
dict[key as K] = value
}
return dict
}
map(forFields: (UserField.email, "email"), (UserField.id,"id"))

关于swift - 枚举结构创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com