Currently I have a when block like this:
val foo = getStringFromBar()
when {
foo == "SOMETHING" -> { /*do stuff*/ }
foo == "SOMETHING ELSE" -> { /*do other stuff*/ }
foo.contains("SUBSTRING") -> { /*do other other stuff*/ }
else -> { /*do last resort stuff*/ }
}
Is there any way to simplify this to something like this:
val foo = getStringFromBar()
when (foo) {
"SOMETHING" -> { /*do stuff*/ }
"SOMETHING ELSE" -> { /*do other stuff*/ }
.contains("SUBSTRING") -> { /*do other other stuff*/ } // This does not work
else -> { /*do last resort stuff*/ }
}
You can use with
Try this way
with(foo) {
when {
equals("SOMETHING") -> println("Case 1")
equals("something",false) -> println("Case 2")
contains("SUBSTRING") -> println("Case 3")
contains("bar") -> println("Case 4")
startsWith("foo") -> println("Case 5")
else -> println("else Case")
}
}