标签: swift generics
考虑这个(无效的)Swift函数签名。
func f<T, P>(type: T.Type, as alias: P.Type) where T: P
这不编译。是否有任何方法可以实现事先未知的协议或基类的一致性,例如,
f(type: Bool.self, as: CustomStringConvertible.self)
在这种情况下,第一个类型T必须符合第二个类型P。
T
P
我认为现在不可能,但我很想确认。
解决方法是在运行时执行一致性检查。