Skip to content

Instantly share code, notes, and snippets.

@ferPrieto
Created August 5, 2020 11:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ferPrieto/fe578c3a20ad519244744636791bd1d9 to your computer and use it in GitHub Desktop.
Save ferPrieto/fe578c3a20ad519244744636791bd1d9 to your computer and use it in GitHub Desktop.
// Nested conditions (BAD IDEA)
fun logTeamMembers(teamMembers: List<String>) {
if (teamMembers.isEmpty()) {
Log.d("TAG", "It's empty")
} else if (teamMembers.size == 1) {
if (teamMembers.first() == "foo") {
Log.d("TAG", "The only member is foo")
} else {
Log.d("TAG", "The only member is not foo")
}
} else {
if (teamMembers.size > 4) {
Log.d("TAG", "There are more than 4 members")
} else {
Log.d("TAG", "There are less than 4 members")
}
}
}
// Split in functions (BETTER IDEA)
fun logTeamMembersBetter(teamMembers: List<String>) {
teamMembers
when (teamMembers.size) {
0 -> Log.d("TAG", "It's empty")
else -> logSingleOrMultipleTeamMembers(teamMembers)
}
}
fun logSingleOrMultipleTeamMembers(teamMembers: List<String>) {
when (teamMembers.size) {
1 -> logSingleTeamMembers(teamMembers)
else -> logMultipleTeamMembers(teamMembers)
}
}
fun logSingleTeamMembers(teamMembers: List<String>) {
if (teamMembers.first() == "foo") {
Log.d("TAG", "The only member is foo")
} else {
Log.d("TAG", "The only member is not foo")
}
}
fun logMultipleTeamMembers(teamMembers: List<String>) {
if (teamMembers.size > 4) {
Log.d("TAG", "There are more than 4 members")
} else {
Log.d("TAG", "There are less than 4 members")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment