Is there any difference between using "content = { }" parameter or directly "{}" in Jetpack Compose?

39 Views Asked by At

I was wondering if it is better to use directly "content = {}" parameter instead of "{}" despite I see more often people using "{}".

Is the code cleaner or does the code load faster by using one or the other ? Is there any good practice ?

When using "{}"

@Composable
fun MyComposable(){
Box{}
}

When using "content = {}"

@Composable
fun MyComposable(){
Box(content = {})
}
1

There are 1 best solutions below

3
Abhimanyu On BEST ANSWER

The concepts used here are Kotlin trailing lambda and Kotlin named arguments.

Kotlin named arguments

So, this can be written with named arguments,

@Composable
fun MyComposable(){
    Box({})
}

like this

@Composable
fun MyComposable(){
    Box(content = {})
}

Kotlin trailing lambda

From the docs,

According to Kotlin convention, if the last parameter of a function is a function, then a lambda expression passed as the corresponding argument can be placed outside the parentheses

This implies,

@Composable
fun MyComposable(){
    Box({})
}

and

@Composable
fun MyComposable(){
    Box() {}
}

are same.