1、ObservableField和MutableLiveData的区别
https://blog.csdn.net/awodefengduanwu/article/details/116601357
2、Kotlin中的inline, noinline, crossinline, reified
https://www.jianshu.com/p/76a0e4990785
https://zhuanlan.zhihu.com/p/224965169
inline 可以让你用内联——也就是函数内容直插到调用处——的方式来优化代码结构,从而减少函数类型的对象的创建;
noinline 是局部关掉这个优化,来摆脱 inline 带来的「不能把函数类型的参数当对象使用」的限制;
crossinline 是局部加强这个优化,让内联函数里的函数类型的参数可以被间接调用;
reified让类型参数更加具体, 好用(https://blog.csdn.net/Goals1989/article/details/126964612)。
3、suspendCoroutine(让异步回调方法变成有返回值的方法)
https://zhuanlan.zhihu.com/p/569412300
4、 .() 高阶函数
T.()->Unit 的函数体中可以直接使用T代表的对象,即用this代表对象
https://blog.csdn.net/liujun3512159/article/details/127993296
5、.invoke
callback?.invoke(default) 相当于 callback( default )
private fun nnn() {//1、调用show("1"){// it====trueLog.d("LUO","it====${it}")}}//2、被调用方法fun show(id: String, result:((Boolean)-> Unit)?) {if(id.equals("1")){result?.invoke(true)return}result?.invoke(false)return}
https://jianshu.com/p/17ca06dbd89e