Kotlin-funktionssamtal med Infix-notering

I den här artikeln lär du dig att använda infixnotation för att anropa en funktion i Kotlin (med hjälp av exempel).

Innan du lär dig hur du skapar en funktion med infixnotation, låt oss utforska två vanliga infixfunktioner.

När du använder ||och &&hanterar, letar kompilatorn upp efter respektive respektive funktioner och ringer dem under huven.

Dessa två funktioner stöder infixnotation.

Exempel: Kotlin eller & och funktion

 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") )

När du kör programmet blir resultatet:

 resultat = sant resultat = falskt

I ovanstående program används a or bistället för a.or(b)och a and bistället a.and(b)för. Det var möjligt eftersom dessa två funktioner stöder infixnotation.

Hur skapar jag en funktion med infixnotation?

Du kan ringa ett funktionssamtal i Kotlin med hjälp av infixnotation om funktionen

  • är en medlemsfunktion (eller en förlängningsfunktion).
  • har bara en enda parameter.
  • är markerat med infixnyckelord.

Exempel: Användardefinierad funktion med infixnotation

 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) )

När du kör programmet blir resultatet:

  * * * * * * * * * * * * * * * * 

Här createPyramid()är en infix-funktion som skapar en pyramidstruktur. Det är en medlemsfunktion i klassen Structure, tar bara en parameter av typen Intoch börjar med nyckelord infix.

Antalet rader i pyraminden beror på argumentet som skickas till funktionen.

Intressanta artiklar...