다음과 같이 정의한 프로토콜이 있습니다.
protocol MyProtocol {
...
}
또한 일반 구조체가 있습니다.
struct MyStruct <T> {
...
}
마지막으로 일반적인 기능이 있습니다.
func myFunc <T> (s: MyStruct<T>) -> T? {
...
}
T 유형이 MyProtocol을 준수하는지 함수 내부를 테스트하고 싶습니다. 본질적으로 나는 할 수 있기를 원합니다 (~ 의사 코드) :
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 is MyProtocol.self, T is MyProtocol그리고 사용하는 ==대신을 is. 지금까지 나는 아무데도 가지 않았다. 어떤 아이디어?