when (x) { parseInt(s) -> print("s encodes x") esle -> print("s does not encode x") }
也可以用in或!in判断一个值是否在一个范围(range)或集合(collection)中:
1 2 3 4 5 6
when (x) { in1...10 -> print("x is in the range") in validNumbers -> print("x is valid") !in10...20 -> print("x is outside the range") else -> print("none of the above") }
还可以用is或!is来检查一个值是否是某个类型:
1 2 3 4
val hasPrefix = when(x) { is String -> x.startsWith("prefix") // 注意这里s已经被自动转为String类型了 else -> false }