Kotlin学习(九): 扩展(Extensions)和This表达式

Kotlin1.1

扩展是Kotlin中特别强大的一个功能,如扩展函数,本文是学习Kotlin中的扩展(Extensions)和This表达式的相关知识。

扩展(Extensions)

在Java开发时,会经常将那些共用的方法写到一个Utils类,如FileUtils,StringUtils等等。很有名的java.util.Collections也是其中一员的,在使用的时候

Collections.swap(list, Collections.binarySearch(list, Collections.max(otherList)), Collections.max(list))

Kotlin中提供了一种可以在不继承父类,也不使用类似Decorator这样的设计模式的情况下对指定类进行扩展,在Kotlin中称为扩展的特殊声明,支持函数扩展和属性扩展。
如上面的可以写成

list.swap(list.binarySearch(otherList.max()), list.max())

比如要将Toast写成可以直接调用toast(this, "toast")

fun Context.toast(context: Context, content: String) {
    Toast.makeText(context, content, Toast.LENGTH_SHORT).show()
}

扩展函数(Extension Functions)

要声明一个扩展函数,我们需要在函数的名称前加上一个接收者类型并且加上.符号

/**
* MutableList<Int> 添加一个 swap() 扩展函数
*/
fun MutableList<Int>.swap(index1: Int, index2: Int) {
    val tmp = this[index1] // this对应list
    this[index1] = this
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值