Kotlin-toimintokutsu Infix-merkinnällä

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 bsijaan a.or(b), ja a and bsen 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 infixavainsanalla.

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 Intja alkaa avainsanalla infix.

Pyramindin rivien määrä riippuu funktiolle välitetystä argumentista.

Mielenkiintoisia artikkeleita...