在 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() { }
有没有办法将可组合函数存储为变量?
答案 0 :(得分:4)
尚不支持可组合函数引用(这就是错误消息的实际含义)。此外,@Composable
注释是函数签名的一部分,因为它为函数添加了一些参数。所以你需要使用val functionVariable: @Composable () -> Unit = { myFunction() }
。