Подтвердить что ты не робот

Что эквивалентно для java-интерфейсов или объективных c-протоколов в swift?

Я искал новый язык Swift, пытаясь найти то, что эквивалентно интерфейсу (в java) или протоколу (в objective-c) в Swift, после серфинга в Интернете и поиска в книге Apple, я все еще не могу найти его.

Кто-нибудь знает, что имя этого компонента в swift и какой его синтаксис?

4b9b3361

Ответ 1

Протоколы в 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-стиля; по сути, компилятор копирует декларацию и вставляет ее в каждый объект, который придерживается протокола.

Ответ 2

swift также имеет протоколы, здесь - соответствующая документация: