https://blog.csdn.net/yoonerloop/article/details/123241451
一、无参数的函数参数
1、回调
//定义
interface OnClickListener {
fun onClick()
}
private fun setOnClickListener(listener: OnClickListener) {
}
//使用
setOnClickListener(object : OnClickListener {
override fun onClick() {
}
})
2、闭包
//定义
private fun setOnClickListener(listener: () -> Unit) {
}
//使用
setOnClickListener {
}
二、一个参数的函数参数
//定义
interface OnClickListener {
fun onClick(index: Int)
}
private fun setOnClickListener(listener: (index: Int) -> Unit) {
}
//一个参数可以使用it替代参数
setOnClickListener {
Log.d("TAG", "onClick: $it")
}
三、两个参数的函数参数
//定义
interface OnClickListener {
fun onClick(index: Int, item: String)
}
private fun setOnClickListener(listener: (index: Int, item: String) -> Unit) {
}
//使用
setOnClickListener { index, item ->
Log.d("TAG", "onClick: $index")
Log.d("TAG", "onClick: $item")
}
四、函数参数有返回值
//定义
interface OnClickListener {
fun onClick(index: Int, item: String): Boolean
}
private fun setOnClickListener(listener: (index: Int, item: String) -> Boolean) {
}
//使用
setOnClickListener { index, item ->
Log.d("TAG", "onClick: $index")
Log.d("TAG", "onClick: $item")
true
}
版权声明:本文为CSDN博主「一杯清泉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yoonerloop/article/details/123241451