2019-08-23: Kotlin 中 infix 关键字的原理和使用场景?
Moosphan opened this issue · 5 comments
Moosphan commented
2019-08-23: Kotlin 中 infix 关键字的原理和使用场景?
424385117 commented
infix可以自定义操作符,比如1 to 2 这种的, 1 add 2,让程序更加语义化
gabyallen commented
//其中to,dao就是中缀函数
fun infixFun() {
val train ="北京" to "上海"
val train ="北京" dao "上海"
}
beilly commented
是是扩展方法的一种特殊情况,如下是 to 的定义:
public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
xiaoyunfei commented
infix : 中缀函数,主要使用在只有一个参数的成员函数或者扩展函数上,同时比一般函数具有可读性;
使用条件:1、函数必须只有一个参数;2、函数必须是扩展函数或者成员函数;3、必须使用infix修饰;
用扩展函数举个例子:
infix fun Int.add(num:Int):Int{
return this + num
}
调用的时候:
val sum = 1 add 1
skymxc commented
使用场景是用来修饰函数,使用了 infix 关键字的函数称为 中缀函数,使用时可以省略 点表达式和括号。让代码看起来更加优雅,更加语义化。
原理不过是编译器在语法层面给与了支持,编译为 Java 代码后可以看到就是普通的函数调用。
kotlin 的很多特性都是在语法和编译器上的优化。