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 b
istället för a.or(b)
och a and b
istä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
infix
nyckelord.
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 Int
och börjar med nyckelord infix
.
Antalet rader i pyraminden beror på argumentet som skickas till funktionen.