Jason. Cała informatyka w jednym miejscu!

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ć!

"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:

W pozostałych przypadkach "pocałujecie klamkę" (kompilator zgłosi błąd).

Słowo kluczowe "infix" w języku Kotlin

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ł.

PODOBNE ARTYKUŁY