Skip to content

Latest commit

 

History

History
90 lines (64 loc) · 2.26 KB

19.md

File metadata and controls

90 lines (64 loc) · 2.26 KB

Kotlin 中缀函数调用

原文: https://www.programiz.com/kotlin-programming/infix-notation

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

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

当您使用||&&操作时,编译器分别查找函数,并在后台进行调用。

这两个函数支持中缀表示法。


示例:Kotlin orand函数

fun main(args: Array<String>) {
    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<String>) {
    val p = Structure()
    p createPyramid 4       // p.createPyramid(4)
}

运行该程序时,输出为:

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

在此,createPyramid()是创建金字塔结构的中缀函数。 它是类Structure的成员函数,仅接受类型为Int的一个参数,并以关键字infix开头。

吡喃酰胺的行数取决于传递给函数的参数。