原始多层嵌套实现
fun main() {
val userRole = "高级会员"
if (userRole == "普通用户") {
println("可以查看基本信息")
} else {
if (userRole == "会员") {
println("可以查看基本信息,也可以发布评论")
} else {
if (userRole == "高级会员") {
println("可以查看基本信息、发布评论,还能进行一些管理操作")
} else {
if (userRole == "管理员") {
println("拥有所有权限")
} else {
println("未知权限等级")
}
}
}
}
}
优化后的实现(使用 when 表达式)
fun main() {
val userRole = "高级会员"
when (userRole) {
"普通用户" -> println("可以查看基本信息")
"会员" -> println("可以查看基本信息,也可以发布评论")
"高级会员" -> println("可以查看基本信息、发布评论,还能进行一些管理操作")
"管理员" -> println("拥有所有权限")
else -> println("未知权限等级")
}
}
优化说明
- 使用
when
表达式:when
表达式类似于其他语言中的switch - case
语句,但功能更强大。它可以接受多种类型的参数,并且代码结构更加简洁。与多层嵌套的if - else
相比,when
表达式使得逻辑分支更加清晰,易于阅读和维护。
- 避免深层嵌套:多层嵌套的
if - else
会导致代码的缩进层次过多,使得代码的可读性变差。而when
表达式将所有的条件分支并列展示,减少了嵌套深度,提高了代码的清晰度。