在 Kotlin 中,if是一个表达式,即它会返回一个值。是以就不须要三元运算符(前提 ? 然后 : 不然),因为通俗的 if 就能胜任这个角色。
- // 作为表达式
- val max = if (a > b) a else b
6.哪里还有switch
when 代替潦攀类java 说话的 switch 操作符。其最简单的情势如下:
- when (x) {
- 1 -> print("x == 1")
- 2 -> print("x == 2")
- else -> { // 留意这个块
- print("x is neither 1 nor 2")
- }
- }
如不雅很多分支须要用雷同的方法处理,则可以把多个分支前提放在一路,用逗号分隔:
- quanke?.department?.head?.name
- when (x) {
- 0, 1 -> print("x == 0 or x == 1")
- else -> print("otherwise")
- }
可以用随便率性表达式(而不只是常量)作为分支前提
- when (x) {
- parseInt(s) -> print("s encodes x")
- else -> print("s does not encode x")
- }
也可以检猜一?值袈溱(in)或者不在(!in)一个区间或者集合中:
另一种可能性是检猜一?值是(is)或者不是(!is)一个特定类型的值。留意: 因为智能转换,你可以拜访该类型的办法和属性而无需任何额外的检测。
- fun hasPrefix(x: Any) = when(x) {
- is String -> x.startsWith("prefix")
- else -> false
- }
范围:..[n,m]=> 即大年夜于等于n,小于等于m
- i => a i => b i => c i => d i => e i => f i => g
范围:until[n,m) => 即大年夜于等于n,小于m
when 也可以用来代替 if-else if链。 如不雅不供给参数,所有的分支前提都是简单的布尔表达式,而当一个分支的前提为真时则履行该分支:
- when {
- x.isOdd() -> print("x is odd")
- x.isEven() -> print("x is even")
- else -> print("x is funny")
- }
7.去你的ClassCastException
推荐阅读
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践! 在很多行业中都有很多看起来竽暌剐事理,用起往来交往不是那回事的误区,在主机中更是有不少,受愚钱是一方面,硬件和>>>详细阅读
本文标题:不要用Java的语法思维来写Kotlin
地址:http://www.17bianji.com/lsqh/40601.html
1/2 1