【发布时间】:2019-02-15 02:58:36
【问题描述】:
我想对给定协议的类型做一个 switch 语句。假设我有:
protocol A {}
struct SA: A {}
struct SB: A {}
let aself: A.Type = SA.self
let bself: A.Type = SB.self
switch aself {
case is SA:
break
default:
break
}
我能以某种方式使这种开关起作用吗?这给了我警告,这种转换总是失败。这可以以某种方式完成吗?
【问题讨论】:
-
你到底想用这个实现什么?
-
有很多要解释的。简而言之,我有一个定义一些对象行为的基本引擎,在这个基类之上,我可以创建使用不同技术显示此内容的工作引擎。引擎为特定的任务使用不同的数据类型,base 使用这些类型调用函数。我尝试先使用泛型,但效果不佳,因此动态类型对我来说是更好的解决方案。
标签: swift types switch-statement