【发布时间】:2021-12-27 10:59:18
【问题描述】:
当我使用 Jetpack 撰写时:
@Composable
fun parentFuncNeedComp( func:@Composable ()->Unit){
func()
}
我不能在 func 之前移动 @Composable:
@Composable func: ()->Unit
上面写着:此注解不适用于目标'值参数'
我制作了一个名为 MyAnnotation 的自定义注释,并编写了一个示例:
@MyAnnotation
fun func1() {
println("func1")
}
fun func2() {
println("func2")
}
fun parentFunc(@MyAnnotation func:@MyAnnotation ()->Unit){
func()
}
fun main() {
parentFunc(::func2)
parentFunc(::func1)
}
为什么它们都有效?! @MyAnnotation 位置的区别是什么?
【问题讨论】:
-
@MyAnnotation 添加了target : value 参数和类型,我的工作室不要在语法上说错。
-
你问的是为什么你可以调用
parentFunc(::func2),即使func2没有用@MyAnnotation注释,而你不能使用@Composable注释做同样的事情? -
@NicklasJensen 是的,你能给我解释一下吗?
标签: android kotlin android-jetpack-compose