选项1:
func getKeyByType<T:Decodable>(type: T.Type) -> String {
if (type == [String].self){
return "storageKey"
}
return "nothing"
}
选项2:
func getKeyByType<T:Decodable>(type: T.Type) -> String {
switch type {
case [String].self:
return "storageKey"
default:
return "nothing"
}
}
//
getKeyByType(type: [String].self)
第一种方法可以正常工作,但第二种方法会出现编译错误:
“ [String] .Type”类型的表达模式不能与类型的值匹配 'T.Type'
如何使开关适用于元类型?
答案 0 :(得分:3)
解决方案:
switch type {
case is [String].Type :
return "storageKey"
default:
return "nothing"
}