在 Kotlin 中,if是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的 if 就能胜任这个角色。
// 传统用法var max = a if (a < b) max = b// With else var max: Intif (a > b) { max = a} else { max = b}// 作为表达式val max =if (a > b) a else bval max =if (a > b) {print("Choose a") a} else {print("Choose b") b}
when 表达式
when 表达式取代了类 C 语言的 switch 语句。when 将它的参数与所有的分支条件顺序比较,直到某个分支满足条件。其最简单的形式如下:
when (x) {1->print("x == 1")2->print("x == 2")else-> { // when和if类似有一个可选的else块print("x is neither 1 nor 2") }}
when (x) {0, 1->print("x == 0 or x == 1")else->print("otherwise")}
when的分支条件比Java的switch更加强大,可以是任何表达式,不一定是常量:
when (x) {parseInt(s) ->print("s encodes x")else->print("s does not encode x")}
when示例,判断值是否属于in、不属于某个区间!in:
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")}