一、无参数的函数参数
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
}
本文详细介绍了函数参数的使用,从无参数的回调函数到闭包,再到处理一个或多个参数的函数,最后讨论了带有返回值的函数参数。通过实例展示了如何定义和使用这些函数类型,适用于理解和应用函数式编程概念。
1581

被折叠的 条评论
为什么被折叠?



