Kotlin知识点

168 阅读1分钟

学习网站

www.nhooo.com/kotlin/kotl…

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、伴生对象创建一个实例。