📜  Kotlin中缀函数调用

📅  最后修改于: 2020-10-05 14:49:37             🧑  作者: Mango

在本文中,您将学习使用int表示法在Kotlin中调用函数 (借助示例)。

在学习如何创建具有中缀表示法的函数之前,让我们探索两个常用的中缀函数。

使用||&&操作,编译器分别查找or和and函数,并在后台调用它们。

这两个功能支持中缀表示法。


示例: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开头。

pyramind的行数取决于传递给函数的参数。