我尝试了写作中的范围函数,但有些东西让我感到困惑。我在位置1有错误:“@Composable调用只能在@Composable函数的上下文中发生”,但我不知道为什么。
@Composable
fun scope_test() {
val isOk: Boolean? = false
Column() {
isOk?.let {
Text(text = "That's it!")
} ?: {
Text(text = "Nothing!") // place 1: error
}
isOk?.let {
Text(text = "That's it!")
} ?: run { Text(text = "Nothing!") }
isOk?.let {
Text(text = "That's it!")
} ?: Text(text = "Nothing!")
}
}发布于 2021-12-15 06:27:48
看起来Kotlin中的代码块只是不单独执行。即使在这个块中使用标准的Kotlin语句,Android也会将它们灰色化,就好像它们是多余的(它们不执行)。您需要像在第二个示例中那样调用run函数。
这里是来自Kotlin论坛的一个类似的问题,我觉得这很有帮助。
https://stackoverflow.com/questions/70358728
复制相似问题