【发布时间】:2020-08-16 10:33:38
【问题描述】:
我想写一个 swift 函数,给定一组元类型,检查另一个元类型是否符合其中任何一个。
泛型在这里不起作用,因为target 的类型在编译时是未知的。
protocol Drinkable {}
protocol Edible {}
struct Bread: Edible {}
func conforms<T>(_ itemType: Any.Type, to target: T.Type) -> Bool {
itemType is T.Type
}
func conformsToAny(_ type: Any.Type, to types: [Any.Type]) {
types.contains {type in
conforms(Bread.self, to: type) //
}
}
conformsToAny(Bread.self, to: [Drinkable.self, Edible.self])
这可能吗?
【问题讨论】:
-
据我所知,集合是行不通的。元组是一种选择吗?
标签: swift