你能检查一个类型(不是一个实例)是否是另一个类型的子类吗?
根据这个代码..。
class Vehicle{}
class Car : Vehicle {}
class Honda : Car {}
你将如何编写下面的函数'findFirst‘...
class TypeManager {
var managedTypes:[Any.Type]?
func findFirst(_ type:Any.Type) -> Any.Type? {
return managedTypes.first{ t in t is type.Type } // <-- Doesn't like 'type'
}
}
var typeManager = TypeManager()
typeManager.managedTypes = [
String.self,
Int.self,
Honda.self
]
let firstCarType = typeManager.findFirst(Car.Type)
注意:这实际上是在字典上进行反向关键字查找。在一个完美的解决方案中,我会首先尝试在'type‘上找到一个完全匹配的,如果找不到,就选择一个'type’的子类。我只是简化了(伪造的)代码,专注于匹配的部分。
转载请注明出处:http://www.tzjx69597577.net/article/20230526/1495461.html