Kotlin语法备忘

1、ObservableField和MutableLiveData的区别

2、Kotlin中的inline, noinline, crossinline, reified

inline 可以让你用内联——也就是函数内容直插到调用处——的方式来优化代码结构,从而减少函数类型的对象的创建;

noinline 是局部关掉这个优化,来摆脱 inline 带来的「不能把函数类型的参数当对象使用」的限制;

crossinline 是局部加强这个优化,让内联函数里的函数类型的参数可以被间接调用;

3、suspendCoroutine(让异步回调方法变成有返回值的方法)

4、 .() 高阶函数

T.()->Unit 的函数体中可以直接使用T代表的对象,即用this代表对象

5、.invoke

callback?.invoke(default) 相当于 callback( default )

 private fun nnn() {
       //1、调用
       show("1"){
            // it====true
            Log.d("LUO","it====${it}")
       }
    }

    //2、被调用方法
    fun show(id: String, result:((Boolean)-> Unit)?) {
        if(id.equals("1")){
            result?.invoke(true)
            return
        }
        result?.invoke(false)
        return
    }

Original: https://blog.csdn.net/zhifanxu/article/details/128716002
Author: zhifanxu
Title: Kotlin语法备忘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/812437/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球