kotlin中缀函数 infix function

中缀函数

中缀函数必须满足的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)
原文地址:https://www.cnblogs.com/huyang011/p/14657623.html