Kotlin传递函数作为参数,可以有:命名参数,位置参数以及在参数列表外,以lamba的形式传递。
示例
data class Person(val name: String,
val age: Int = 0,
val showMsg : (msg: String) -> Unit)
命名参数
val p = Person(name="张三", age=18, showMsg = ::println)
位置参数
val p = Person("张三", 18, {msg -> println(msg)})
在参数列表外
val p = Person(name = "张三", age = 18) { println(it) }
如果函数是作为最后一个参数,才可以在以lambda表达式的方式在参数列表外传递。
注意:命名参数和位置参数是不能混在一起使用。