官方描述
Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。 这通过叫做 扩展 的特殊声明完成。 例如,你可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。 这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。 这种机制称为 扩展函数 。此外,也有 扩展属性 , 允许你为一个已经存在的类添加新的属性。
详见:https://www.kotlincn.net/docs/reference/extensions.html
主要值得注意的
- 扩展函数(声明一个扩展函数,我们需要用一个 接收者类型 也就是被扩展的类型来作为他的前缀。)
- 扩展是静态解析的(扩展不能真正的修改他们所扩展的类。通过定义一个扩展,你并没有在一个类中插入新成员, 仅仅是可以通过该类型的变量用点表达式去调用这个新函数。
) - 扩展的作用域(大多数时候我们在顶层定义扩展——直接在包里。)
简单使用
下图中我在ContextExt.kt文件中,定义了2个对Context的扩展函数。是我们常用的获取屏幕的宽度与高度。
使用起来非常顺手,在Activity中,直接即可调用。