Kotlin学习笔记(3)-when

java中的switch被kotlin中的when取代。

我们都知道,java中的switch有非常多不好用的地方,例如只能使用于原始类型和字符串,经常会忘写break导致bug….总之我都是尽量不用switch,而用if elseif的。不过在kotlin中,这些问题都得到了很好的解决,我们看看when是怎么起作用的。
这里写图片描述
1.首先when是一个表达式,而不像java里的switch是一个单纯的执行顺序控制,when会返回对应的值,同时我们之前也说过,如果方法只有一条表达式,那么可以不用写 return,所以这个方法就是返回color对应的字符串
2.kotlin里的when操作的对象可以是任意对象,而不用限制在原始类型中。
3.kotlin里不用写break,每个分支都会自动插入break
如果想要多个值对应到一个结果,可以这样写
这里写图片描述


之前说过when可以作用于任意对象类型,我们再来看看这个特性有多大的好处吧
这里写图片描述
1.setOf是kotlin的一个全局方法,返回一个set对象,所以when进行比较的是set对象,又因为set对象是没有顺序的数据结构,所以在kotlin中,只要两个set包含的元素相等,则两个set相等。
2.set之间进行比较
3.else相当于java中的default块
从上图可以看到,如果java需要进行这种比较,估计需要多写一倍的代码,但是kotlin通过一个功能强大的when以及其他一些语法糖能够快速写出一个可读性强,又精简的代码块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值