English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Онлайн инструменты

Kotlin базовый учебник

Функции в Kotlin

Строки в Kotlin

Kotlin поток управления

Инfix функции в Kotlin

Kotlin面向对象(OOP)

В этой статье вы узнаете, как использовать инфиксные символы для вызова функций в Kotlin (с помощью примеров).

Прежде чем изучать, как создавать функции с инфиксным символом, давайте сначала рассмотрим два常用的 инфиксных функции.

При использовании || и &&& компилятор соответственно ищет функции or и and и вызывает их в фоновом режиме.

Эти функции поддерживают инфиксное обозначение.

fun main(args: Array<String>) {
    Пример: функции or и and в Kotlin
    val a = true
    val b = false
    var result: Boolean
    result = a and b // a.and(b)
    result = a or b // a.or(b)
    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<String>) {
    val p = Structure()
    p createPyramid 4       // p.createPyramid(4)
}

При запуске программы вывод будет следующим:

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

Здесь createPyramid() — это infix-функция для создания структуры пирамиды. Это член функции класса Structure, которая принимает один параметр типа Int и начинается с ключевого слова infix.

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