如何将空 lambda(字符串)-> 单位直接分配给变量?



我正在学习代码a,我希望直接分配一个null lambda表达式给onValueChange进行测试。

但是代码B,代码C和代码D都是错误的,我如何将空lambda (String) -> Unit分配给变量onValueChange?

代码

@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = onNameChange          
)
}
}

代码B

@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = { }
)
}
}

C代码

@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = null           
)
}
}

代码D

@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = fun(x:String):Unit{ }           
)
}
}

你没有说OutlinedTextField来自哪里,但我猜这一个。在这种情况下,答案是你不能;类型为(String) -> Unit,不可为空。是的,我看到像label: () -> Unit = null这样的参数,但这没有意义;不仅null不是一个有效的参数,而且() -> Unit如何被解释为一个标签?

但是一个什么都不做的lambda就像你的B和d一样

最新更新