Kotlin 枚举类实战:用 enum class 告别魔法数字和散落的常量
你写过这样的代码吗?
// 订单状态:0=待支付,1=已支付,2=已发货,3=已完成,4=已取消
fun handleOrder(status: Int) {
if (status == 0) {
println("等待支付...")
} else if (status == 1) {
println("已支付,准备发货")
} else if (status == 2) {
println("已发货")
} else if (status == 3) {
println("订单完成")
} else if (status == 4) {
println("已取消")
}
// 如果传进来一个 5 呢?静默忽略了...
}
这段代码有三个问题:第一,0, 1, 2, 3, 4 是"魔法数字"——读代码的人根本不知道它们代表什么;第二,if-else 链又臭又长;第三,如果有人传了个 5,代码会静默忽略,不报任何错。
Kotlin 的 enum class(枚举类) 可以一次性解决这三个问题,而且远比你想象的强大。