Šiame straipsnyje jūs išmoksite naudoti infix žymėjimą, kad iškviestumėte Kotlino funkciją (naudodamiesi pavyzdžiais).
Prieš sužinodami, kaip sukurti funkciją su infix žymėjimu, panagrinėkime dvi dažniausiai naudojamas infix funkcijas.
Kai naudojate ||
ir &&
operacijas, kompiliatorius ieško atitinkamai arba funkcijų, ir iškviečia jas po gaubtu.
Šios dvi funkcijos palaiko infix žymėjimą.
Pavyzdys: Kotlin arba & ir 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") )
Kai paleisite programą, išvestis bus:
rezultatas = tikras rezultatas = klaidingas
Pirmiau minėtoje programoje naudojama a or b
vietoj a.or(b)
, ir a and b
vietoj a.and(b)
. Tai buvo įmanoma, nes šios dvi funkcijos palaiko infix žymėjimą.
Kaip sukurti funkciją su infix žymėjimu?
Galite skambinti funkcija Kotlin, naudodami infix žymėjimą, jei funkcija
- yra nario funkcija (arba išplėtimo funkcija).
- turi tik vieną parametrą.
- yra pažymėtas
infix
raktiniu žodžiu.
Pavyzdys: vartotojo apibrėžta funkcija su užrašų žymėjimu
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) )
Kai paleisite programą, išvestis bus:
* * * * * * * * * * * * * * * *
Čia createPyramid()
yra infix funkcija, sukurianti piramidės struktūrą. Tai yra klasės nario funkcija Structure
, užima tik vieną tipo parametrą Int
ir prasideda nuo raktinio žodžio infix
.
Piramidės eilučių skaičius priklauso nuo argumento, perduoto funkcijai.