U ovom ćete članku naučiti koristiti infix oznaku za pozivanje funkcije u Kotlinu (uz pomoć primjera).
Prije nego što naučite kako stvoriti funkciju koja ima infix notaciju, istražimo dvije najčešće korištene infix funkcije.
Kada koristite ||
i &&
operacije, kompajler traži odnosno ili i i funkcije, i poziva ih ispod haube.
Ove dvije funkcije podržavaju infiksnu notaciju.
Primjer: Kotlin ili & i funkcija
fun main(args: Array) ( val a = true val b = false var result: Boolean result = a or b // a.or(b) println("result = $result") result = a and b // a.and(b) println("result = $result") )
Kada pokrenete program, izlaz će biti:
rezultat = istinit rezultat = netačan
U gornjem programu se koristi a or b
umjesto a.or(b)
i a and b
umjesto a.and(b)
. To je bilo moguće jer ove dvije funkcije podržavaju infix oznaku.
Kako stvoriti funkciju s infix oznakom?
Funkciju možete uputiti u Kotlinu pomoću infix oznake ako funkcija
- je funkcija člana (ili funkcija proširenja).
- ima samo jedan jedini parametar.
- označena je
infix
ključnom riječi.
Primjer: Korisnički definirana funkcija s Infix oznakom
class Structure() ( infix fun createPyramid(rows: Int) ( var k = 0 for (i in 1… rows) ( k = 0 for (space in 1… rows-i) ( print(" ") ) while (k != 2*i-1) ( print("* ") ++k ) println() ) ) ) fun main(args: Array) ( val p = Structure() p createPyramid 4 // p.createPyramid(4) )
Kada pokrenete program, izlaz će biti:
* * * * * * * * * * * * * * * *
Ovdje createPyramid()
je infiksna funkcija koja stvara piramidnu strukturu. To je funkcija člana klase Structure
, uzima samo jedan parametar tipa Int
i započinje s ključnom riječi infix
.
Broj redaka piramide ovisi o argumentu proslijeđenom funkciji.