作家
登录

不要用Java的语法思维来写Kotlin

作者: 来源: 2018-03-12 11:57:41 阅读 我要评论

在 Kotlin 中,if是一个表达式,即它会返回一个值。是以就不须要三元运算符(前提 ? 然后 : 不然),因为通俗的 if 就能胜任这个角色。

  1. // 作为表达式 
  2. val max = if (a > b) a else b 

6.哪里还有switch

when 代替潦攀类java 说话的 switch 操作符。其最简单的情势如下:

  1. when (x) { 
  2.     1 -> print("x == 1"
  3.     2 -> print("x == 2"
  4.     else -> { // 留意这个块 
  5.         print("x is neither 1 nor 2"
  6.     } 

如不雅很多分支须要用雷同的方法处理,则可以把多个分支前提放在一路,用逗号分隔:

  1. quanke?.department?.head?.name 
  1. when (x) { 
  2.     0, 1 -> print("x == 0 or x == 1"
  3.     else -> print("otherwise"

可以用随便率性表达式(而不只是常量)作为分支前提

  1. when (x) { 
  2.     parseInt(s) -> print("s encodes x"
  3.     else -> print("s does not encode x"

也可以检猜一?值袈溱(in)或者不在(!in)一个区间或者集合中:

另一种可能性是检猜一?值是(is)或者不是(!is)一个特定类型的值。留意: 因为智能转换,你可以拜访该类型的办法和属性而无需任何额外的检测。

  1. fun hasPrefix(x: Any) = when(x) { 
  2.     is String -> x.startsWith("prefix"
  3.     else -> false 

范围:..[n,m]=> 即大年夜于等于n,小于等于m

  1. i => a i => b i => c i => d i => e i => f i => g 

范围:until[n,m) => 即大年夜于等于n,小于m

when 也可以用来代替 if-else if链。 如不雅不供给参数,所有的分支前提都是简单的布尔表达式,而当一个分支的前提为真时则履行该分支:

  1. when { 
  2.     x.isOdd() -> print("x is odd"
  3.     x.isEven() -> print("x is even"
  4.     else -> print("x is funny"

7.去你的ClassCastException


  推荐阅读

  热管还会打酱油?别让散热误区帮你倒忙

沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践! 在很多行业中都有很多看起来竽暌剐事理,用起往来交往不是那回事的误区,在主机中更是有不少,受愚钱是一方面,硬件和>>>详细阅读


本文标题:不要用Java的语法思维来写Kotlin

地址:http://www.17bianji.com/lsqh/40601.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)