在学习如何创建具有中缀表示法的函数之前,让我们探索两个常用的中缀函数。
使用||
和&&
操作,编译器分别查找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的行数取决于传递给函数的参数。