Did you know you can just whip out curly-braces all over the place in Rust and Go?

But why on Earth would you even want to do this?

Ephera
link
fedilink
3
edit-2
2Y

Yeah, at work, we (regrettably) elected to use Kotlin for a project instead of previously Scala and those braces are definitely something I miss.

Kotlin does support basically the same thing with the run { } function, but Kotlin is so incredibly inconsistent with when implicit returns are allowed and when not, that it seems to confuse colleagues rather frequently…

@winnie@lemmy.ml
creator
link
fedilink
2
edit-2
2Y

I was also confused with explicit return in Kotlin, which behaves differently for inline and non inline functions.

Ephera
link
fedilink
22Y

Yeah, in inline functions, you have to use implicit returns, whereas in regular/named functions, you have to use explicit returns.

Although, there is yet another special case to that rule in that you can use labeled explicit returns in inline functions like so:

list.map { value ->
    return@map value*2
}

Very useful for .borrow()ing things

Rust Programming
!rust@lemmy.ml
    • 0 users online
    • 2 users / day
    • 2 users / week
    • 2 users / month
    • 74 users / 6 months
    • 1 subscriber
    • 258 Posts
    • 707 Comments
    • Modlog