Extension Functions (Funkcje rozszerzające)

Kliknij i wspomóż mnie :)

Kotlin

Wstęp

Kotlin jako język wspiera funkcje rozszerzające (Extension functions). Pozwalają one rozszerzyć daną klasę o funkcjonalności bez używania dekoratorów lub dziedziczenia.

W tym przypadku programiści najczęściej patrzą w stronę klas Utils, gdyż kotlin skutecznie pozwala zredukować ich użycie.

Zobaczmy jak wyglądają różnice w kodzie Javy z klasą Utils - Collection i kotlina z funkcjami rozszerzającymi.

Pierwszą zaletą jest to, że nie musimy za każdym razem odwoływać się do klasy (w tym przypadku Collections) tylko od razu wywołać funkcję na obiekcie.

Drugą ważną rzeczą jest to, iż nie trzeba podawać obiektu, na którym chcemy operować poprzez argument.

Własności funkcji rozszerzających

W kotlinie takie funkcje przejmują większość właściwości z normalnych funkcji:

  • Nie modyfikują klasy, którą rozszerzają
  • Słowo kluczowe this wewnątrz funkcji odwołuje się do obiektu "receiver" (przed kropką)
  • Możemy używać ich z typami generycznymi
  • Określone są przez typ na, którym są wywoływane
  • Taka sama funkcja lokalna ma przewagę nad funkcją rozszerzającą
  • Funkcje takie można przeciążać
  • Receiver może przyjmować typ null
  • Funkcje rozszerzające (Extension functions) można definiować dla obiektów statycznych (Companion object)
  • Funkcje takie zadeklarowane w jednej klasie będą dostępne także w innych klasach

Kotlin i Android

Programując na system Android używa się ogromnej liczby klas Utils.

Bywa jednak tak, że użycie ich składni jest długie i nieporęczne.

I tak funkcje rozszerzające (Extension functions) okazały się być czytelniejszą alternatywą dla programistów androida. Poniżej przedstawię kilka dość znanych przykładów.

Prawda, że ograniczenie toast'ów do takiej formy znacznie upraszcza i życie i kod?

Bardzo przydatne jest także skrócenie LayoutInflater'a wszędzie tam gdzie musimy odnosić się do zewnętrznych layout'ów.

To użycie może znacznie kodu nie skraca, ale za to możemy wykonać funkcję na obiekcie String.

Android KTX

Od kiedy Google na swoim wydarzeniu Google I/O ogłosił Kotlin'a jako oficjalny język dla aplikacji wielu programistów zainteresowało się jego realnym wprowadzeniem.

Od niedawna do android'a można zaimplementować paczkę Android KTX z Github tutaj:

Android KTX

Jest ona niczym innym jak zbiorem przydatnych funkcji rozszerzeń (Extension Functions), dla ludzi pracujących w Androidzie.

Android KTX można też zaimplementować ze strony:

Android Developers

Kotlin:

Kotlin z Android KTX:

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.