Learning Kotlin: How to Use Return When [Snippet]
Let's take a look at a feature in Kotlin you might not know about: return when. In this post, we examine how to use it with some examples.
Join the DZone community and get the full member experience.
Join For FreeContinuing our break from the Koans, today, we are going to look at another cool trick I learned using Kotlin this week. We will also be focusing on the when
keyword we learned about previously.
Let's start with a simple function to return the text for a value using when
:
fun step1(number: Int):String {
var result = "";
when (number) {
0 -> result = "Zero"
1 -> result = "One"
2 -> result = "Two"
}
return result;
}
We can avoid the next evolution by creating a variable and returning it directly (this is something I would do often in .NET):
fun step2(number: Int):String {
when (number) {
0 -> return "Zero"
1 -> return "One"
2 -> return "Two"
}
return ""
}
And, now, we get to the cool part — we can just return the when
!
fun step3(number: Int):String {
return when (number) {
0 -> "Zero"
1 -> "One"
2 -> "Two"
else -> ""
}
}
Yup. The when
can return a value. This means that we can also do one final trick:
fun step4(number: Int):String = when (number) {
0 -> "Zero"
1 -> "One"
2 -> "Two"
else -> ""
}
It is so cool that your logic can just return from a condition, and it works with if
statements, too. You can even use this with the Elvis operator that we learned about previously:
fun ifDemo3(name:String?) = name ?: "Mysterious Stranger"
Published at DZone with permission of Robert Maclean, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments