我们如何在Swift中检查一个泛型类型是从其他类型继承的?
我有这段代码:
class Style<U: Styleable> {
...
init<V: Styleable>(_ style: Style<V>) {
...
}
}
我需要在init中确保只有在U
是V
的子类时才能调用它。我不知道在编译时检查这个问题的任何方法--Swift不允许(但可能?)将一个泛型类型约束为other的子类。所以我唯一能做的就是使用一些断言,以便在以错误的方式使用程序时崩溃。
您对如何解决这个问题有什么建议吗?
答案 0 :(得分:1)
好吧,我找到了答案。它非常接近:
assert(U.self is V.Type)