您的位置:首页 > 移动开发 > Android开发

Koltin简明学习,扩展方法和扩展属性

2017-06-20 16:52 134 查看
看标题就知道介绍两个东西,扩展函数和扩展属性。这个两个东西Java中没有,Kotlin拥有。两者对我们开发程序非常有帮助,让我们的代码更加简洁,更加易懂。

扩展方法

我们看下anko这个也是jetbrains开发的库中是怎么来写扩展方法

/**
* Display the simple Toast message with the [Toast.LENGTH_SHORT] duration.
*
* @param message the message text resource.
*/
fun Context.toast(message: Int) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show()


扩张方法很普通用法不同就是加了个类名。表示这个方法是那个类的方法。我们知道在Java语言中,要给一个类加个方法只能继承这个类。Kotlin能够很简单的给类价格方法。toast扩展方法表示这个方法类Context的,那么toast方法可以访问Context类的所有成员。

我们可以这样在一个Activtiy中使用这个扩张方法

toast("hello world")


比用Utils代码更简单。

fun ImageView.loadImage(url: String) {
Glide.with(context).load(url).into(this)
}


上面是给ImageView添加一个扩展方法,这样我们加载图片就更加简单了,代码更加简洁。

扩展属性

我们知道一个类除了有方法,还有属性。Kotlin也可以在一个类中新添加一个属性。

val View.ctx: Context
get() = context


上面是我们给一个View类添加一个属性cxt。其实这个属性就是View中的context成员变量。就是一个简写。

var TextView.textColor: Int
get() = currentTextColor
set(v) = setTextColor(v)


自定义属性要重新属性的getter和setter。上面代码中currentTextColor变量和setTextColor方法都是类TextView中的成员变量和成员方法。

Kotlin简明学习—文章列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐