Jason. Cała informatyka w jednym miejscu!

Przed nami ostatnia część krótkiego epizodu związanego z klasami danych w Kotlinie. Innowacji w tym języku co nie miara, gdyż zademonstruję następną nowość której nie znajdziecie w Javie. Temat niniejszego artykułu brzmi: "Destrukturyzacja obiektu danych przy użyciu metody »componentN« w języku Kotlin". Brzmi fajowo? To nie czekajcie ani chwili i nabywajcie wiedzy!

"COMPONENTN" W JĘZYKU KOTLIN KOLEJNYM NIESPOTYKANYM WYNALAZKIEM

Najpierw zaczniemy od poznawania samej metody. "componentN" to specyficzna metoda klasy danych, która pozwala na wydobycie N-tej właściwości, ale tylko tej która została zdefiniowana w konstruktorze podstawowym! Dlatego w artykule o samych klasach danych wyraźnie podkreśliłem, że miejsce występowania danej składowej MA znaczenie!

To nie koniec niespodzianek. Ta metoda (a raczej "te metody" w liczbie mnogiej, zaraz się przekonacie dlaczego) jest automatycznie generowana. Ona nie wymaga żadnej implementacji, przesłaniania, absolutnie niczego z naszej strony. Mało tego, ona sama "rozwija się" w zależności od liczby właściwości jakie tam dodaliśmy. Zatem, w rzeczywistości mamy do czynienia z jedną, bądź WIELOMA metodami o podobnej nazwie. Liczba metod "componentN" w języku Kotlin zależy od liczby danych składowych zdefiniowanych wewnątrz konstruktora podstawowego. Czyli dla dwóch danych będziemy mieli do dyspozycji "component1" i "component2". I tak dalej.

PRZYKŁAD WYWOŁANIA

Posłużymy się identycznym przykładem klasy danych jaki został ukazany w poprzednich artykułach:

data class Person(val name: String, val surname: String)

Od tej pory, nasza klasa danych będzie dysponowała DWIEMA metodami "z automatu". Tak działa "componentN" w języku Kotlin. Kiedy utworzymy sobie instancję jak poprzednio:

val person = Person("Tadeusz", "Kościuszko")

możemy zbadać co zostanie zwrócone na wyjściu korzystając z tej samej funkcji "println" i wsadzając do niej dla przykładu, "component1":

println(person.component1())

Co się wyświetli? Pokaże się wartość pierwszej danej składowej zawartej w konstruktorze podstawowym! I tak samo będzie dla każdej kolejnej właściwości z odpowiednim dostosowaniem typu zwracanej wartości, czyli dla liczby całkowitej to będzie "Int", dla łańcucha znaków "String" i tak dalej...

Metoda klasy danych "componentN" w języku Kotlin

Metoda "componentN" w języku Kotlin zwraca wartość N-tej danej składowej obiektu danych zdefiniowanej w konstruktorze podstawowym!

DESTRUKTURYZACJA OBIEKTU DANYCH

Teraz druga część artykułu, czyli jak "componentN" w języku Kotlin może nam uprzyjemnić pisanie kodu źródłowego, gdyż zwięzłość jest jednym z założeń Kotlina. Ten termin, który może zaplątać nasz język, "destrukturyzacja", oznacza on rozbicie wartości właściwości na grupę osobnych zmiennych przy pomocy jednej instrukcji i bez użycia pętli! Pokazuję przykład i kończymy, gdyż naprawdę nie wymaga to dużego nakładu teoretycznego:

val (name, surname) = person

Tak wygląda składnia i w oczy powinny Wam się rzucać dwa szczegóły. Pierwszy, to otoczenie grupy zmiennych parą nawiasów. One są obowiązkowe i pominięcie ich skutkować będzie wystąpieniem błędu składniowego. Drugi, to wartość którą się przypisuje. Myśleliście pewnie, że będzie potrzebna jakaś osobna metoda do wykorzystania. Nie tym razem. Połączyłem oba tematy, gdyż "componentN" w języku Kotlin działa i tutaj, tylko incognito. To jest po prostu skrót od takiego kodu:

val name = person.component1()
val surname = person.component2()

Nic więcej jak "syntaktyczny cukier", czyli "uprzyjemniacz składniowy" mający skutecznie uprzyjemnić programowanie. Dodam, że można to wykorzystywać również w pętlach, użyć do zwracania wielu wartości z funkcji oraz sprzyja projektowaniu wyrażeń lambda. Więcej informacji możecie ujrzeć w oficjalnej dokumentacji Kotlina. Napiszę jeszcze na końcówkę, że nie jest konieczne wyczerpywanie wszystkich danych składowych co do joty. Możecie wziąć na przykład dwie pierwsze właściwości z pięciu. Nie ma problemu!

Destrukturyzacja obiektu danych w języku Kotlin

Podczas destrukturyzacji obiektu, metoda "componentN" działa po kryjomu zastępując ciąg instrukcji manualnego przypisywania w jedną "zwiniętą" instrukcję.


To wszystko w takim dużym skrócie po co to jest, jak stosować i na co uważać.

PODOBNE ARTYKUŁY