繁体   English   中英

Swift-开启元类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM