声明符合Swift协议的变量或常量

JuJ*_*oDi 7 protocols swift

在Swift中,如何声明符合协议的变量(或常量)?

我试过了

let whatever: protocol <myProtocol>
Run Code Online (Sandbox Code Playgroud)

let whatever: myProtocol
Run Code Online (Sandbox Code Playgroud)

但是在设置它时我得到了错误

Cannot convert the expression's type '()' to type 'myProtocol'
Run Code Online (Sandbox Code Playgroud)

小智 1

来自文档

\n\n
\n

协议是命名类型,因此它们可以与其他命名类型一样出现在代码中的所有相同位置,如协议作为类型中所述。但是,您可以\xe2\x80\x99t 构造协议的实例,因为协议实际上并不提供它们指定的要求的实现。

\n
\n

  • 很好,但问题并不表明这里发生了这种情况。如果代码类似于“letwhat = MyProtocol()”,那么您的观点是有效的,但事实并非如此。 (3认同)