infix适用于有单个参数的扩展函数,如果一个函数使用了infix 关键字,接收者和函数之间的点操作 以及参数的一对括号可以省略
fun String?.printWithDefault0(default: String) = print(this ?: default)
infix fun String?.printWithDefault(default: String) = print(this ?: default)
val nullableString: String? = null
//非 infix 函数printWithDefault(default: String)的调用方法
nullableString.printWithDefault0("abc") //abc
//infix 函数printWithDefault(default: String)的调用方法
nullableString printWithDefault "abc" //abc
// infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
"jack".to(18)
"jack" to 18
// infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
val map : Map<String, Int> = mapOf("jack" to 18,"Army".to(20),"Rose" to 21)