Зачем нам использовать расширения? - PullRequest
0 голосов
/ 20 апреля 2020

Я только что узнал о расширениях, и мне было интересно, был пример о расширении protocl, например, скажем, у нас есть протокол:

protocol CanFly {
    func canFly()
}

, который позволяет всем классам, которые могут летать в основном летать .. теперь давайте скажем, что мы используем расширение для расширения протокола, и мы делаем:

extension CanFly {
    func canEat() {
        print("I can eat")
    }
}

какова цель этого, если мы можем просто добавить это func canEat в наш протокол, другие протоколы похожи на структуру abstruct, так почему бы нам добавить забаву c с телом к ​​ней?

  • просто хочу сказать, если я напортачил, извините за это, просто хочу прояснить несколько вещей о расширении <3 </li>

1 Ответ

0 голосов
/ 03 мая 2020

Для документации Swift по Расширениям протоколов :

Протоколы могут быть расширены для обеспечения реализации методов, инициализатора, нижнего индекса и вычисляемых свойств для соответствующих типов. Это позволяет вам определять поведение в самих протоколах, а не в индивидуальном соответствии каждого типа или в глобальной функции.

Это означает, что вы можете запустить logi c в функции расширения протокола , поэтому вам не нужно делать это в каждом классе, соответствующем протоколу.

Лично я также считаю, что расширения полезны для расширения функциональности встроенных классов, таких как String или UIViewController, поскольку расширения могут быть вызывается из любого места в приложении. У меня есть расширение с открытым исходным кодом фрагменты , на которое вы можете посмотреть, если хотите.

...