提问人:Mister Propre 提问时间:10/6/2023 更新时间:10/6/2023 访问量:28
在 Jetpack Compose 中使用“content = { }”参数或直接使用“{}”有什么区别吗?
Is there any difference between using "content = { }" parameter or directly "{}" in Jetpack Compose?
问:
我想知道直接使用“content = {}”参数而不是“{}”是否更好,尽管我看到人们更频繁地使用“{}”。
代码是否更干净,或者使用一个或另一个来加载代码更快? 有什么好的做法吗?
使用“{}”时
@Composable
fun MyComposable(){
Box{}
}
使用“content = {}”时
@Composable
fun MyComposable(){
Box(content = {})
}
答:
2赞
Abhimanyu
10/6/2023
#1
这里使用的概念是 Kotlin 尾随 lambda 和 Kotlin 命名参数。
Kotlin 命名参数
因此,这可以用命名参数来编写,
@Composable
fun MyComposable(){
Box({})
}
喜欢这个
@Composable
fun MyComposable(){
Box(content = {})
}
Kotlin 尾随 lambda
从文档中,
根据 Kotlin 约定,如果函数的最后一个参数是函数,则可以将作为相应参数传递的 lambda 表达式放在括号外
这意味着,
@Composable
fun MyComposable(){
Box({})
}
和
@Composable
fun MyComposable(){
Box() {}
}
都是一样的。
评论
0赞
Mister Propre
10/6/2023
多谢。很清楚。我正在研究这些不同的惯例。
1赞
Ayman Ait
10/7/2023
@MisterPropre,我只是想说的是,如果您为 exemple 创建了自己的函数,那么我强烈建议不要使用Kotlin 尾随 lamda,而是使用 kotlin 命名参数,因为您可能知道这个 lambda 对应关系,但另一个在您的团队中工作的人不会知道这一点,他们必须查找它等。这不是规则,而是一种节拍练习fun MyCustomButton(text:String, onClick: ()->Unit)
onClick
0赞
Mister Propre
10/7/2023
是的,我会的。坦率地说,我保留了始终使用 Kotlin 命名参数的习惯。对于像我这样的初学者来说,这种方式使它变得非常清晰和有用。谢谢你的建议
评论