1. Kotlin中的object 与companion object的区别 - 简书
2.lambda:https://www.cnblogs.com/Jetictors/p/8647888.html
参数(如果存在)(参数类型可以省略) ->
函数体(如果存在)。
// 源代码
fun test(a : Int , b : Int) : Int{ return a + b }
fun sum(num1 : Int , num2 : Int) : Int{ return num1 + num2 }
// 调用
test(10,sum(3,5)) // 结果为:18
// lambda
fun test(a : Int , b : (num1 : Int , num2 : Int) -> Int) : Int{ return a + b.invoke(3,5) } //b为高阶函数,实际引用中带入函数实体即可
// 调用
test(10,{ num1: Int, num2: Int -> num1 + num2 }) // 结果为:18
3、
?.意思是这个参数可以为空,并且程序继续运行下去
!!.的意思是这个参数如果为空,就抛出异常
4、
open
注解与java中的final
相反表示类是否可以被继承,Kotlin中所有的类默认是final
open
可以有方法体,子类可以通过super
关键字访问
abstract
就如同java中的abstract
一样,即当前类不用实现方法,交由子类实现
itemClickListener?.let{}?:let{} : 有点像if(itemClickListener){}else{}。和itemClickListener?{}:{}
var itemClickListener: ((View, T, Int) -> Unit)? = null 》》》定义一个函数变量itemClickListener;输入3个参数,->返回Unit对象; ?=null就是不为空,就等于空