在 Kotlin 中,如果要在一个参数的扩展函数中使用中缀符号,需要遵循以下步骤:
infix
关键字的函数,并将其定义为扩展函数。确保这个函数只有一个参数。infix fun String.hasSubstring(substring: String): Boolean {
return this.contains(substring)
}
val result = "Hello World" hasSubstring "Hello"
println(result) // 输出为 true
然而,Android 中的扩展函数是以静态方法的形式实现的,因此默认情况下不支持中缀符号。为了使中缀符号在 Android 中的扩展函数上起作用,需要进行以下调整:
infix fun String.hasSubstring(substring: String): Boolean {
return this.contains(substring)
}
// 在包级别定义一个函数,将其委托给扩展函数
infix fun String.hasSubstringWrapper(substring: String): Boolean {
return this.hasSubstring(substring)
}
val result = "Hello World" hasSubstringWrapper "Hello"
println(result) // 输出为 true
通过这种方式,我们可以在 Android 中的扩展函数上使用中缀符号。