Kotlin-扩展函数和运算符重载

1.扩展函数表示即使在不修改某个类源码的情况下,仍然可以打开这个类,向该类添加新的函数。
在顶层文件定义如下这样一个方法,就能给String类添加一个lettersCount方法。

fun String.lettersCount():Int{
    var count=0
    for (char in this){
        count++
    }
    return count
}

2.运算符重载
运算符重载一定是写在类里面的,这个类的对象想要用+-*/等符号来简明扼要的定义一个函数,其实和定义一个方法差不多,只不过用符号来表示方法。

operator fun plus(num:Int):Int{
        return 1+num;
    }
语法糖表达式 实际调用函数
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 a.compareTo(b)
a>=b a.compareTo(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 a.contains(b)

你可能感兴趣的:(Kotlin-扩展函数和运算符重载)