Kotlin
2018-09-05
W tym trochę dłuższym poście kontynuuję zagadnienie czystego kodu w Kotlin'ie. Wspomnę m.in. o pętlach czy osławionym Null safety.
Jeżeli chodzi o pętle w Kotlin'ie to nie dość, że są one krótsze niż w Javie to dodatkowo mogą stać się dużo bardziej czytelne poprzez użycie range expression.
W tym przykładzie program wypisze co drugą liczbę od 6 do 0. Zakres (range) znajduje się po słowie kluczowym in.
Bardzo ułatwia sprawę to, iż zamiast pisać lista.length - 1 jako ostatni element możemy użyć słowa kluczowego until.
Podczas pracy z obiektami typ Map przydatne jest użycie:
Destructuring Declarations
Pozwala na rozbicie Pair, data class czy właśnie Map już w deklaracji pętli.
Ciężko policzyć jak często programiści Javy dostali NullPointerException. Przyzwolenie na to żeby zmienne przyjmowały wartości null przysporzyło na prawdę wiele problemów i odbiło się szerokim echem w środowisku.
Twórcy języka postanowili odpowiedzieć na ten problem i wprowadzili dwa operatory:
? oraz !!.
Znak ? pozwala zmiennej żeby była null.
Elvis operator (?:) jest takim if-else'em, który zwraca wartość po lewej stronie jeżeli nie jest null a w innym wypadku to co jest po prawej stronie.
Operator ?. jest tzw. bezpiecznym wywołaniem. Potrafi on zwrócić null jednak jeśli połączymy go z let to kod wykona się tylko wtedy kiedy obiekt nie jest null.
Użycie operatora !! na obiekcie sprawi, że będzie się on zachowywać jak w Javie.
Kotlin pozwala na to żeby bloki takie jak when czy if zwracały wartość. Przypomina to trochę delegację, gdzie zamiast na sztywno deklarować wartość zmiennej pozwalamy, żeby wynikła ona z kodu.
Więcej wyjaśni pewnie poniższy kod.
Jeszcze więcej zyskujemy, gdy użyjemy when. Jest to taka alternatywa dla switcha z Javy.
Nie tylko wiele nowości, ale także usprawnień już istniejących elementów niesie język od JetBrains'ów.
W Kotlin'ie możemy nazywać parametry, definiować ich domyślne wartości oraz deklarować czy mogą one być null czy nie.
Ciekawym rodzajem funkcji, który może sprawić że kod będzie sie trochę łatwiej czytać są infix functions. Przypominają one trochę funkcje rozszerzające oraz pozwalają ominąć operator kropki.
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 😊
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ć.
Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.