Kotlin 中缀表达式
2021-07-04 本文已影响0人
景知育德
扩展函数
假如有一个类,具有若干个字段(属性)和方法。
但是我们想给它添加新的方法,这就可以使用扩展函数了。
扩展函数不会修改类本身的结构。
譬如我现在想给List<Number>
类添加方法secondElem()
,可以这样:
fun List<Number>.secondElem(): Number? {
return if (this.size < 2) null else this[1]
}
用以输出一个List<Number>
实例中的第二个元素。
中缀表达式
中缀表达式的语法是在扩展函数的基础上的。它需要在函数前面加上infix
修饰。
infix fun Int.mod(that:Int):Int {
return this % that
}
中缀表达式在调用时可以不加括号:
fun main() {
println(17 mod 5)
}
直接17 mod 5
就可以了。
中缀表达式的要求:
- 中缀表达式必须是扩展函数或方法;
- 中缀表达式只能有一个参数;
- 中缀表达式的参数不能有默认值(否则参数可能为空);
- 中缀表达式的参数不能是可变参数(否则参数可能不止一个)。