[英]Swift - switch on metatypes
选项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”的值
如何使开关适用于元类型?
解:
switch type {
case is [String].Type :
return "storageKey"
default:
return "nothing"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.