kotlin中的when:强大的switch

参考网址
在Java(特别是Java 6)中,switch表达式有很多的限制。除了针对短类型,它基本不能干其他事情。
然而,Kotlin中when表达式能够干你想用switch干的每件事,甚至更多。
实际上,在你的代码中,你可以用when替换复杂的if/else语句。

kotlin的强大就是能够将复杂的或者冗长的代码 使用很简洁的方式达到同样的目的;


kotlin的when
1.像是java中的switch那样使用when,
when(条件){
  条件值1 -> 执行语句1
  条件值2 -> 执行语句2
  条件值3 -> 执行语句3
  else -> 执行语句4
}
2.自动转型(Auto-casting)

如果检查表达式左边类型(如:一个对象是特定类型的实例),就会得到右边任意类型:

 when (view) {
     is TextView -> toast(view.text)
     is RecyclerView -> toast("Item count = ${view.adapter.itemCount}")
     is SearchView -> toast("Current query: ${view.query}")
     else -> toast("View type not supported")
 }

除类型检查外,when还能用保留字in检查一个范围或列表内的实例。

3.无自变量的when

通过该选项,我们可以检查在when条件左边想要的任何事:

 val res = when {
     x in 1..10 -> "cheap"
     s.contains("hello") -> "it's a welcome!"
     v is ViewGroup -> "child count: ${v.getChildCount()}"
     else -> ""
 }

因when是表达式,所以它能够返回存储到变量里的值。
这里的无条件的when使用,还可以代替多条件的复杂if-elseif-else语句,添加多路径执行。这也是when的强大之处。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值