You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何直接为变量赋值类型为(String) -> Unit的空lambda表达式?

解决方案

直接给空lambda加一个占位参数即可,符合要求的写法如下:

@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
    Column(modifier = Modifier.padding(16.dp)) {
        // 其他代码
        OutlinedTextField(
            // 其他参数
            onValueChange = { _ -> }          
        )
    }
}

各错误写法原因说明

  • 代码B报错:你写的{ }是无参lambda,和onValueChange要求的「接收1个String类型参数、返回Unit」的函数类型不匹配,编译器无法完成类型推导所以报错。加_ ->就是显式声明该lambda接收1个参数,下划线表示这个参数不需要使用,完全符合类型要求。
  • 代码C报错:onValueChange的参数类型是不可空的(String) -> Unit,不允许传入null值,如果要支持传null需要把参数类型改为(String) -> Unit?才可以。
  • 代码D语法本身是合法的,如果运行报错大概率是拼写等其他问题,但写法过于冗余,远不如占位lambda的写法简洁高效。

内容的提问来源于stack exchange,提问作者HelloCW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:09:02