如果协议扩展中定义了静态方法,如何调用协议上的静态方法?

这本书
protocol Car {
    static func foo() 
}

struct Truck : Car {

}

extension Car {
    static func foo() {
        print("bar")
    }
}

Car.foo() // Does not work  
// Error: Car does not have a member named foo

Truck.foo() // Works

Xcode可以Car.foo()正确正确地自动完成,所以我要问的是它是否是未编译的错误(例如它没有名为foo()的成员)。如果在协议扩展中定义了静态方法,可以直接在协议上调用它们吗?

季霍诺夫·亚历山大

苹果文件

协议本身实际上并未实现任何功能。尽管如此,您创建的任何协议都将成为在代码中使用的完整类型。

因此,您不能直接调用协议的静态方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章