学习网站
apply
是什么?
1、是一个高阶函数。
2、lambda表达式内部有一个this。
为什么要引入它?
首先我们看看原始的代码
sfl.setColorSchemeColors(Color.RED)
sfl.isRefreshing = true
然后我们看看优化以后的代码
sfl.apply {
setColorSchemeColors(Color.RED)
isRefreshing = true
}
内部有一个this。
如何使用?
sfl.apply {
setColorSchemeColors(Color.RED)
isRefreshing = true
}
doAsync
是什么
1、这个是一个函数,用来在后台运行。
为什么要使用它?
可以方便的进行线程的切换,不需要再调用线程。
如何使用
1、引入依赖
implementation "org.jetbrains.anko:anko-commons:0.10.8"
2、代码的使用
doAsync {
//1、让代码可以在子线程中运行
var result = runLongTask()
//2、切换到主线程中运行
uiThread {
toast(result)
}
}
kotlin中单例的实现
首先我们看看代码
class FragmentFactory private constructor() {
companion object {
val instance = FragmentFactory()
}
}
需要2个条件
1、需要是私有构造。
2、伴生对象创建一个实例。