这里有一个例子来了解对任意对象使用“when”,
VehicleParts是一个枚举类,有四种类型。
mix 是一个接受两种 VehicleParts 类的方法。
setOf(p1, p2) - 表达式可以产生任何对象
setOf 是一个 kotlin 标准库函数,用于创建包含对象的 Set。
集合是一个集合,其中项目的顺序无关紧要。
Kotlin 允许组合不同的类型来获得多个值。
当我通过 VehicleParts.TWO 和 VehicleParts.WHEEL 时,我得到“自行车”。
当我通过 VehicleParts.FOUR 和 VehicleParts.WHEEL 时,我得到“汽车”。
示例代码,
enum class VehicleParts {
TWO, WHEEL, FOUR, MULTI
}
fun mix(p1: VehicleParts, p2: VehicleParts) =
when (setOf(p1, p2)) {
setOf(VehicleParts.TWO, VehicleParts.WHEEL) -> "Bicycle"
setOf(VehicleParts.FOUR, VehicleParts.WHEEL) -> "Car"
setOf(VehicleParts.MULTI, VehicleParts.WHEEL) -> "Train"
else -> throw Exception("Dirty Parts")
}
println(mix(VehicleParts.TWO,VehicleParts.WHEEL))