TL;DR
-
if-elsefor simple cases with only one conditions or to use early returns pattern. -
whenfor more complex cases with multiple conditions and to have a cleaner code.
Ever feel lost in a maze of
if-elsestatements, desperately trying to handle every input nuance? Fear not, fellow dev! Kotlin'swhenstatement offers a sleek and powerful escape route.
Forget the Javaswitchcases or the endlesselse ifthat makes your code's readability horrible.whencan simplify your logic, writing multiple conditions into a single and clear block.
Why when is better in my option?
Clean Code: allows you to write more concise and readable code, especially when you need to check multiple conditions.
Type Safe: runtime mistakes can be avoided by checking the expression against each case value.
Extensibility: can be easily extended to handle new cases.
Code example
fun renderRequests(userId: String) = renderComponent {
val user = getUser(userId)
when (user.role) {
is ROLE.CHILD -> return
is ROLE.UNCLE -> defaultRequestError()
is ROLE.PARENT -> {
buildRenderComponent(user)
}
}
}
Now compare with if-else:
fun renderRequests(userId: String) = renderComponent {
val user = getUser(userId)
if (user.role == ROLE.CHILD) {
return
} else if (user.role == ROLE.UNCLE) {
defaultRequestError()
} else if (user.role == ROLE.PARENT) {
buildRenderComponent(user)
}
}
When if-else is a better option?
When I want to use early returns pattern.
Writing functions or methods, early return means that the expected positive result is returned at the end of the function, and when conditions are not met, the rest of the code ends the execution by returning or throwing an exception.
Code example
fun sayMyName(name: String): String {
if (!name || name.length < 0) {
return;
}
return `Hello, ${name}`
}
Top comments (0)