跳到主要内容

Kotlin 中缀函数调用

提示
  1. Kotlin 中缀函数的常见示例:在 Kotlin 中,逻辑运算符 ||&& 是中缀函数 orand 的示例,可以使用中缀表示法进行调用。
  2. 中缀函数的定义条件:要创建中缀函数,它必须是成员函数或扩展函数、只有一个参数,并且必须用 infix 关键字标记。
  3. 使用中缀函数的示例:中缀函数允许使用更简洁的语法进行调用,例如 p createPyramid 4 代替 p.createPyramid(4),用于创建金字塔结构的示例中展示了这一点。

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

当你使用 ||&& 操作时,编译器会分别查找 orand 函数,并在底层调用它们。

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

示例:Kotlin or & and 函数

fun main(args: Array<String>) {
val a = true
val b = false
var result: Boolean

result = a or b // a.or(b)
println("结果 = $result")

result = a and b // a.and(b)
println("结果 = $result")
}

当你运行程序时,输出将是:

结果 = true
结果 = false

在上述程序中,使用了 a or b 而不是 a.or(b),以及 a and b 而不是 a.and(b)。这是因为这两个函数支持中缀表示法。

如何创建具有中缀表示法的函数?

如果函数是

  • 成员函数(或 扩展函数
  • 只有一个单一参数
  • 被标记为 infix 关键字

那么你可以在 Kotlin 中使用中缀表示法进行函数调用。

示例:用户自定义的具有中缀表示法的函数

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 开头。

金字塔的行数取决于传递给函数的参数。