一、扩展函数
扩展函数指在不修改某个类的源码的情况下,仍然可以打开该类并向其中添加新的函数。
语法结构
fun ClassName.methodName(param1:Int , param2:Int): Int{
return 0
}
比如在String类库中添加一个新的函数doAction1,只需要创建按照以上的方式创建( fun String.doAction1(){} ,然后使用时就可以直接对字符串调用doAction1方法。
fun String.letterCount():Int{
var count = 0
for(char in this){
if(char.isLetter()){
count++
}
}
return count
}
fun main(){
val name = "Frank malo"
println(name.letterCount())
}
注意:不光是String类库,你可以向Kotlin的其他任何类库中添加扩展函数。
二、运算符重载
Kotlin运算符重载就是赋予运算符新的使用意义。在指定函数前面加上 operator关键字 就可以实现运算符重载。不同运算符所指定的重载函数不同。
重载函数对照表
语法糖表达式 重载函数 a + b a.plus(b) a-b a.minus(b) a*b a.times(b) a / b a.div(b) a%b a.rem(b) a++ a.inc() a-- a.dec() +a a.unaryPlus() -a a.unaryMinus() !a a.not() a==b a.equals(b) a>b a.compareTo(b) a..b a.rangeTo(b) a[b] a.get(b) a[b]=c a.set(b,c) a in b b contains(a)