, 可以 使用 尾随 Lambda 语法 ;
函数作为参数 ,
并且 该函数参数 是最后一个参数 ,
那么可以 将最后一个参数 放在 括号外面 , 括号外使用 Lambda 表达式作为参数 ;
使用...表达式替代对象表达式原理
----
1、Lambda 替换对象表达式
在使用 Kotlin 开发时 , 经常遇到这种情况 , 最后一个函数是匿名内部类 , 匿名内部类中只实现了一个函数 , 此时使用 Lambda...Lambda 表达式 其本质 就是 函数类型 的 匿名对象 , 也是一个实例对象 , 在堆内存中分配相应的空间 ;
在下面的代码中 , 使用 对象表达式 创建了匿名对象 , 该匿名类实现了 View.OnClickListener...}
}
符合以下两个条件 :
函数 接收一个 接口类型 的匿名内部类 或 对象表达式 ;
该 接口类型 中 只定义了一个函数 ;
可以 省略掉 匿名内部类 也就是 对象表达式的定义 , 直接使用 接口中的函数...setOnClickListener 函数真正接收的是 OnClickListener 接口实例对象 ,
传入一个 Lambda 表达式 , 会自动为其创建 OnClickListener 接口对应的匿名内部类