Виклик функції Kotlin за допомогою інфіксної нотації

Зміст

У цій статті ви навчитеся використовувати інфіксну нотацію для виклику функції в 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") )

Коли ви запускаєте програму, результат буде:

 result = true result = false

У вищевказаній програмі використовується a or bзамість a.or(b)та a and bзамість a.and(b). Це стало можливим, оскільки ці дві функції підтримують інфіксну нотацію.

Як створити функцію з інфіксною нотацією?

Ви можете здійснити виклик функції в Kotlin, використовуючи інфіксну нотацію, якщо функція

  • є функцією-членом (або функцією розширення).
  • має лише один єдиний параметр.
  • позначено 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()є функція infix, яка створює пірамідну структуру. Це функція-член класу Structure, приймає лише один параметр типу Intі починається з ключового слова infix.

Кількість рядків піраміди залежить від аргументу, переданого функції.

Цікаві статті...