kotlin: infix中缀函数
一,功能
在 Kotlin 中,使用
使用时可以省略
这种特性可以使代码更具可读性。
infix 关键字修饰的函数称为中缀函数,使用时可以省略
. 和 (),允许以更自然(类似自然语言)的语法调用函数,这种特性可以使代码更具可读性。
中缀函数必须满足以下条件:
- 必须是成员函数(成员方法)或扩展函数;
- 有且仅有一个参数,且不能有默认值;
- 必须显式声明
infix关键字;
Kotlin 标准库中的 to 函数是典型的中缀函数:
val map = mapOf(
"name" to "Eileen",
"age" to 30
)
二,例子:and/or
代码:
//处理按钮点击事件:
binding.button3.setOnClickListener {
val a = true
val b = false
var result1: Boolean
var result2: Boolean
var result3: Boolean
var result4: Boolean
result1 = a or b // 相当于: a.or(b)
println("result1 = $result1")
result2 = a.or(b) // 相当于: a or b
println("result2 = $result2")
result3 = a and b // 相当于: a.and(b)
println("result3 = $result3")
result4 = a.and(b) // 相当于: a and b
println("result4 = $result4")
}
运行结果:

三,例子:
代码:
//处理按钮点击事件
binding.button2.setOnClickListener {
infix fun String.addStr(str: String): String {
return this + str
}
println("123".addStr("abc"))
// 简略写法如下
println("123" addStr "abc")
}
运行结果:
![]()
四,例子:链式调用
代码:
//处理按钮点击事件
binding.button4.setOnClickListener {
infix fun String.concatWith(another: String) = "$this$another"
// 链式中缀调用
val message = "Hello" concatWith "," concatWith "World" concatWith "!"
println(message)
}
运行结果:
![]()
浙公网安备 33010602011771号