kotlin 的函数参数

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

相关推荐
CodeCipher39 分钟前
Java基础复习之继承
java·开发语言
BillKu1 小时前
Java延时
java·开发语言
恋猫de小郭1 小时前
React Native 0.80 开始支持 iOS 预构建
android·前端·flutter
雨师@1 小时前
ATM 模拟器 Golang 程序--示例
开发语言·后端·golang
向上的车轮1 小时前
语言特性适用的场景:卫星、火箭控制系统用什么开发语言?
java·开发语言·c++·c#·c·ada
Allen Bright1 小时前
【JS-2】JavaScript基础语法完全指南:从入门到精通
开发语言·javascript·ecmascript
移动开发者1号2 小时前
Kotlin实现文件下载断点续传(RandomAccessFile全解析)
android·kotlin
张风捷特烈2 小时前
每日一题 Flutter#11 | StatelessWidget 从诞生到 build 的流程
android·flutter·面试
移动开发者1号2 小时前
Gson TypeAdapter处理复杂JSON结构
android·kotlin
云边小网安4 小时前
java集合(十) ---- LinkedList 类
java·开发语言·青少年编程·java集合