protocol MyProtocol { ... }
我也有一个通用结构:
struct MyStruct <T> { ... }
最后我有一个通用的功能:
func myFunc <T> (s: MyStruct<T>) -> T? { ... }
我想测试内部的函数,如果类型T符合MyProtocol。基本上我想要能够做(〜pseudocode):
let conforms = T.self is MyProtocol
但这会抛出一个编译错误:
error: cannot downcast from 'T.Type' to non-@objc protocol type 'MyProtocol' let conforms = T.self is MyProtocol ~~~~~~ ^ ~~~~~~~~~~
我也尝试了变体,如T.self是MyProtocol.self,T是MyProtocol,并使用==而不是。到目前为止我还没有到任何地方。有任何想法吗?