Swift中的Java接口或目标C协议等效于什么?

发布于 2021-01-31 23:34:06

在互联网上浏览并搜索Apple提供的书籍后,我一直在寻找新的Swift语言,试图找到Swift中的接口(java)或协议(objective-c)中的等效项。我似乎还是找不到。

有人迅速知道这个组件的名称是什么吗?

关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    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样式的模板;本质上,编译器复制声明并将其粘贴到遵守协议的每个对象中。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看