我想在switch语句中比较类类型(SomeClass.self)。在Swift中是否可行,例如
func retrieveData<T>(forType: T.Type, _ completion: @escaping (Decodable?, Error?) -> Void)
{
switch forType
{
case JonModel.self:
getJonData(completion)
case JaneModel.self:
getJaneData(completion)
}
}
但是这会产生一个错误:
Expression pattern of type 'JonModel.Type' cannot match values of type 'T.Type'
。
可以做到吗?我当然可以为我所有的数据模型类型定义一个枚举,但是我想知道是否可以仅通过比较给定的数据模型类型来实现。