Generics (Typy generyczne) cz.2

Kliknij i wspomóż mnie :)

Kotlin

Wstęp

To jest druga część o typach generycznych w Kotlin'ie. W tym artykule tłumaczę już nieco bardziej zaawansowane pojęcia.

Jeżeli o typch generycznych nie słyszałeś albo temat znasz tylko powierzchownie, to zachęcam Cię do sprawdzenia postu na stronie SamouczekProgramisty tutaj:

Samouczek Programisty

Jeżeli nie czytałeś części pierwszej o generykach to proponuję kliknąć tutaj:

Generics (Typy generyczne) cz.1

W innym przypadku temat może wydać Ci się zbyt abstrakcyjny.

Type projections

Nie zawsze jest tak, że klasa generyczna może zwracać tylko obiekty parametru T na jaki została sparametryzowana. W celu rozwiązania tego Kotlin używa projekcji typów.

Tłumaczone jest to tak, że po stronie użycia (use-site) dostępne będą jedynie te funkcje danej klasy, które zwracają typ T.

Użycie słowa kluczowego out zabezpiecza przed np. zapisem do from.

Star-projections

Kolejnym dosyć zawiłym zagadnieniem są projekcje gwiazdki. Gwiazdka (*) w tym przypadku oznacza, że nie wiemy jakiego typu będziemy używać.

W takim przypadku ważna jest dla nas wartość, a nie typ.

Generic functions

Poza klasami oraz interfejsami generyczne mogą być także funkcje.

Szczególnie przydatne są one kiedy chcemy stworzyć listy generyczne lub zgeneralizować jakiś zbiór elementów. Parametr wyjściowy może być dowolny.

Co ciekawe jednym z rodzajów takich funkcji są Funkcje rozszerzające. Więcej o nich możesz przeczytać tutaj:

Extension Functions (Funkcje rozszerzające)

Generic constraints

Ostatnim rodzaje jaki zamierzam opisać w tym poście jest konstrukcja, która ogranicza pewien zbiór dozwolonych typów wejściowych.

Taka funkcja przyjmie tylko te typy, które dziedziczą po Comparable.

Działanie bardzo dobrze przedstawia przykład z oficjalnej dokumentacji.

Generic constraints

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.