Kotlinov poziv funkcije pomoću Infix notacije

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 bumjesto a.or(b)i a and bumjesto 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 infixključ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 Inti započinje s ključnom riječi infix.

Broj redaka piramide ovisi o argumentu proslijeđenom funkciji.

Zanimljivi članci...