Tässä artikkelissa opit käyttämään infix-merkintöjä toiminnon kutsumiseksi Kotlinissa (esimerkkien avulla).
Ennen kuin opit luomaan funktion, jolla on infix-merkintä, tutkitaan kahta yleisesti käytettyä infix-funktiota.
Kun käytät ||
ja &&
toimintoja, kääntäjä etsii tai ja ja ja vastaavasti toimintoja, ja kutsuu niitä kuoren alle.
Nämä kaksi toimintoa tukevat infix-merkintää.
Esimerkki: Kotlin tai & ja funktio
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") )
Kun suoritat ohjelmaa, tulos on:
tulos = tosi tulos = väärä
Edellä mainittuun ohjelmaan, a or b
sijaan a.or(b)
, ja a and b
sen sijaan, että a.and(b)
käytetään. Se oli mahdollista, koska nämä kaksi toimintoa tukevat infix-merkintää.
Kuinka luoda funktio infix-merkinnällä?
Voit soittaa toimintokutsun Kotlinissa käyttämällä infix-merkintää, jos funktio
- on jäsenfunktio (tai laajennustoiminto).
- on vain yksi parametri.
- on merkitty
infix
avainsanalla.
Esimerkki: Käyttäjän määrittelemä toiminto, jossa on infix-merkintä
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) )
Kun suoritat ohjelmaa, tulos on:
* * * * * * * * * * * * * * * *
Tässä createPyramid()
on infix-funktio, joka luo pyramidirakenteen. Se on luokan jäsenfunktio Structure
, ottaa vain yhden tyyppisen parametrin Int
ja alkaa avainsanalla infix
.
Pyramindin rivien määrä riippuu funktiolle välitetystä argumentista.