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

相关推荐
tgethe2 小时前
java并发——1
java·开发语言·面试
郑州光合科技余经理2 小时前
海外O2O系统源码剖析:多语言、多货币架构设计与二次开发实践
java·开发语言·前端·小程序·系统架构·uni-app·php
globaldomain8 小时前
什么是用于长距离高速传输的TCP窗口扩展?
开发语言·网络·php
沈阳信息学奥赛培训8 小时前
#undef 指令 (C/C++)
c语言·开发语言·c++
2401_873204658 小时前
分布式系统安全通信
开发语言·c++·算法
Dxy12393102169 小时前
JS发送请求的方法详解
开发语言·javascript·ecmascript
sw12138910 小时前
C++中的代理模式实战
开发语言·c++·算法
難釋懷10 小时前
Lua语法入门-条件控制、函数
开发语言·junit·lua
桌面运维家10 小时前
Win10打印机共享故障排查:权限与网络配置详解
开发语言·网络·php
Sunshine for you10 小时前
实时操作系统中的C++
开发语言·c++·算法