Повикване на функция Kotlin с помощта на Infix нотация

В тази статия ще се научите да използвате infix нотация за извикване на функция в Kotlin (с помощта на примери).

Преди да научите как да създадете функция с инфикс нотация, нека разгледаме две често използвани инфикс функции.

Когато използвате ||и &&операции, компилаторът търси съответно функции и и и ги извиква под капака.

Тези две функции поддържат инфикс нотация.

Пример: Kotlin или & и функция

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

Когато стартирате програмата, изходът ще бъде:

 резултат = истински резултат = невярно

В по-горе програма, a or bвместо да a.or(b), и a and bвместо да a.and(b)се използва. Това беше възможно, тъй като тези две функции поддържат инфикс нотация.

Как да създам функция с инфикс нотация?

Можете да осъществите извикване на функция в Kotlin, като използвате инфикс нотация, ако функцията

  • е функция член (или функция за разширение).
  • има само един единствен параметър.
  • е маркиран с infixключова дума.

Пример: Дефинирана от потребителя функция с Infix нотация

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

Когато стартирате програмата, изходът ще бъде:

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

Тук createPyramid()има функция за инфиксиране, която създава пирамидална структура. Това е членна функция на класа Structure, взема само един параметър от тип Intи започва с ключова дума infix.

Броят на редовете на пирамидата зависи от аргумента, предаден на функцията.

Интересни статии...