什么是在Swift中的java接口或目标c协议的等价物?

我一直在寻找新的Swift语言,在互联网上浏览和searchApple提供的书籍之后,试图findSwift中的接口(在java中)或协议(在objective-c中)的等价物,我似乎还无法find它。

有没有人知道这个组件在swift中的名称是什么,它的语法是什么?

Swift中的协议与Objc非常相似,除了不仅可以在类中使用它们,还可以在结构体和枚举中使用它们。

protocol SomeProtocol { var fullName: String { get } // You can require iVars class func someTypeMethod() // ...or class methods } 

符合协议有点不同:

 class myClass: NSObject, SomeProtocol // Specify protocol(s) after the class type 

您还可以使用默认(可重写)的函数实现来扩展协议:

 extension SomeProtocol { // Provide a default implementation: class func someTypeMethod() { print("This implementation will be added to objects that adhere to SomeProtocol, at compile time") print("...unless the object overrides this default implementation.") } } 

注意:默认的实现必须通过扩展来添加,而不是在协议定义本身 – 协议不是一个具体的对象,所以它实际上不能附加方法体。 把一个默认实现想象成一个C风格的模板; 本质上,编译器复制声明并将其粘贴到遵守协议的每个对象中。

swift也有协议,下面是相关的文档: