Kotlin中Unit类型原理疑问:(Boolean) -> Unit的作用咨询
Kotlin
(Boolean) -> Unit类型声明说明 你的理解存在偏差,该声明和「将数据以Unit形式作为参数传递」没有关系,它是Kotlin的函数类型声明,具体解释如下:
- 这段代码表示
onChecked是一个函数类型的变量/参数,它的取值是一个接收单个Boolean类型入参、无返回值的函数,通常用作事件触发后的回调入口。 - Kotlin中的
Unit等价于Java里的void,仅作为「函数无返回值」的标记使用,不是可以被传递的业务数据类型。 - 你可以把
(Boolean) -> Unit拆为三部分理解:- 括号内的
Boolean:代表调用这个函数时需要传入的参数类型,一般对应控件是否被选中的状态值 - 中间的
->:是函数类型的固定语法,用来分隔参数列表和返回值声明 - 末尾的
Unit:代表该函数执行完成后不需要返回任何结果
- 括号内的
举个常见的使用场景示例:
// 给勾选框设置选中状态变化回调,回调的类型就是(Boolean) -> Unit checkBox.setOnCheckedChangeListener { isChecked -> if (isChecked) { // 处理选中逻辑 } else { // 处理未选中逻辑 } // 整个回调执行完不需要返回任何内容,所以返回值是Unit }
内容的提问来源于stack exchange,提问作者Ivana
相关产品推荐
相关产品推荐

