第一行代码 第三版 5.6 kotlin课堂 :扩展函数和运算符重载

5.6 kotlin课堂 :扩展函数和运算符重载

5.6.1扩展函数

拓展函数 : 表示即使在不修改某个类的源代码的情况下,仍然可以打开这个类,向该类中添加新函数。

拓展函数的语法结构:

fun ClassName.methodName(param1 :Int,param2 :Int):Int{
	return 0
	}

示例代码:

/**
 * 将letterCount()方法定义成String类的拓展函数
 * 函数会自动拥有String 实例的上下文
 */
fun String.letterCount():Int{
    var count = 0
    for(char in this){
        if(char.isLetter()){
            count++
        }
    }
    return count
}
fun main() {
    val count="Adsasvcw25156a1d3w".letterCount()
    println(count)
}

拓展函数的作用:多数情况下,可以让API变得更加简洁丰富,更加面向对象。

5.6.2 运算符重载

Kotlin的运算符重载允许我们让任意链两个对象进行相加,或者是进行更多其他的运算符重载。

运算符重载使用的是operator关键字,在指定函数的前面加上operator关键字就可以实现运算符重载的功能。
对两个对象进行相加操作

class Money(val value:Int) {
    operator fun plus(money: Money):Money{
        val sum=value+money.value
        return Money(sum)
    }
}

fun main() {
    val money1=Money(100)
    val money2=Money(400)
    val money3 =money1+money2
    val money4=money1.plus(money2)
    println("${money1.value} + ${money2.value} =${money3.value}-----${money4.value}")
}

因为kotlin允许我们对同一个运算符进行多重重载,所以可以实现上述代码中的Money类可以直接和数字相加。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值