【发布时间】:2019-08-15 12:32:12
【问题描述】:
如何在 Swift 中编写类似于协议组合的类型?
例如,我有一个 likes 数据,它是一个字典,其值具有 Int 或 String,但没有其他值。
likes: {
"1": {
"id": "l1"
"ts": 1551796878504
"userId": "u1"
}
}
当前,我使用一个带类型的变量,
var likes: [String: [String: Any]]
但是,我希望它是类型
var likes: [String: [String: AlphaNum]]
我可以使用typealias AlphaNum = String & Int 或类似的东西,而不使用类或结构吗?
【问题讨论】:
-
您的意思可能是
String | Int,这在动态类型语言中会很好。这在 Swift 中是不可能的。您应该将值包装到自定义结构或具有关联值的枚举中。
标签: swift types composition