中缀函数
中缀函数必须满足的3个条件:
1. 必须是成员函数或扩展函数;
2. 只能有一个参数;
3. 其参数不得接受可变数量的参数且不能有默认值。
即中缀函数为为成员函数或者扩展函数,并且只有一个参数、参数不能是可变参数且不能有默认值, 并且使用infix修饰。
在进行函数调用的时候可以使用中缀方式调用, 优点是具有更强的可读性。
infix fun Int.shl(x: Int): Int { …… } // 用中缀表示法调用该函数 1 shl 2 // 等同于这样 1.shl(2)
mapOf("key" to "value").apply {
val value = get("key")
Log.i("debug", "value = $value")
}
kotlin标准库中的to函数 就是一个中缀函数
/** * Creates a tuple of type [Pair] from this and [that]. * * This can be useful for creating [Map] literals with less noise, for example: * @sample samples.collections.Maps.Instantiation.mapFromPairs */ public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)