Czy wiecie, że język Kotlin wspiera nietypowy zapis wywołania funkcji? Przymiotnik "nietypowy" może mieć naprawdę wiele twarzy, my skupimy się na jednej. Tajemnica tkwi w słowie kluczowym "infix" w języku Kotlin i przyszedł czas się z nim zapoznać!
Tweet |
"INFIX" W JĘZYKU KOTLIN NIE JEST NIKOMU POTRZEBNE DO SZCZĘŚCIA
Stosowanie "infix" to tylko dekoracja do własnego kodu. Samo w sobie nie daje żadnych rewelacyjnych dodatków, a jedynie pozwala na wywoływanie funkcji w sposób niekonwencjonalny. A polega on na "obcięciu" nawiasów okrągłych i separatorów parametrów w postaci przecinków! Brzmi dziwnie? To dopiero początek!
PRZYKŁAD KODU ŹRÓDŁOWEGO
Najprostszy w świecie przykład. Dysponujemy taką oto funkcją, która podnosi liczbę całkowitą do podanej potęgi, także w postaci liczby całkowitej (przykład wymaga rozumienia pętli "for" oraz rozszerzeń):
infix fun Int.power(y: Int): Int {
var result = this
for (n in 1 until y) {
result *= this
}
return result
}
"infix" w języku Kotlin to modyfikator nakładany na funkcję! Zatem, to oznacza dwie drogi wywoływania. Tradycyjnie:
5.power(3)
albo...nietypowo:
5 power 3
Widzicie? "infix" w języku Kotlin daje tylko to, nic więcej! Wywoływanie funkcji polega tutaj na odseparowaniu od siebie części składni jedynie znakiem spacji. To może zwiększyć czytelność kodu i stopień wygody korzystania z funkcji, aczkolwiek samo w sobie nie wnosi niczego wymagającego większej uwagi.
Dwa słowa o ograniczeniach kiedy to można stosować. Jeden z poniższych wariantów, drodzy Państwo:
- funkcja należy do klasy, czyli jest metodą posiadającą jeden parametr bez wartości domyślnej i niewykorzystujący zmiennej liczby argumentów
- funkcja jest rozszerzeniem typu istniejącego posiadającą jeden parametr bez wartości domyślnej i niewykorzystujący zmiennej liczby argumentów
W pozostałych przypadkach "pocałujecie klamkę" (kompilator zgłosi błąd).
Modyfikator "infix" w języku Kotlin nałożony na funkcję, otwiera drogę do alternatywnego sposobu jej wywoływania z możliwością zamiany separatorów w postaci kropek, nawiasów i przecinków na pojedyncze znaki spacji.
Tyle! Jeden z najkrótszych materiałów Kotlina. O ile się trochę orientuję, to w Javie to nie występuje. Więcej o tym się napisać nie da, nawet gdybym chciał.