含多Lambda参数的NiaFilledButton调用时,尾随Lambda赋值给哪个参数?
Kotlin Compose函数Lambda参数赋值问题解答
在Kotlin中,当函数的最后一个无默认值的参数是Lambda类型时,可以使用尾Lambda语法,将该Lambda移到函数调用括号的外侧,用大括号包裹传递。
查看代码A的NiaFilledButton函数参数列表:
text是无默认值的@Composable () -> Unit类型参数- 它之后的
leadingIcon和trailingIcon都是带默认值(null)的可选Lambda参数
在代码B的调用中:
NiaFilledButton(onClick = {}) { Text(text = "Enabled") }
我们仅显式传递了onClick参数,其他带默认值的参数(modifier、enabled等)都使用默认值。此时需要传递的下一个必填参数就是text,而由于text是函数类型,且后续参数都有默认值,符合尾Lambda语法的使用场景,所以外侧大括号里的Text(text = "Enabled")会被赋值给text参数。
内容的提问来源于stack exchange,提问作者HelloCW
相关产品推荐
相关产品推荐

