我可以将可组合函数存储在变量中吗?

时间:2021-03-27 08:47:06

标签: android android-jetpack-compose

在 Kotlin 中,函数是一等公民。我们可以将一个函数存储在一个变量中,如下所示

val functionVariable: () -> Unit = ::myFunction

fun myFunction() { }

但是,对于 @Composable 函数,我该怎么做?

如果我做了下面的事情,它会发出犯规,即org.jetbrains.kotlin.diagnostics.SimpleDiagnostic@e93b05f8 (error: could not render message)

val functionVariable: () -> Unit = ::myFunction

@Composable
fun myFunction() { }

有没有办法将可组合函数存储为变量?

1 个答案:

答案 0 :(得分:4)

尚不支持可组合函数引用(这就是错误消息的实际含义)。此外,@Composable 注释是函数签名的一部分,因为它为函数添加了一些参数。所以你需要使用val functionVariable: @Composable () -> Unit = { myFunction() }