今天,我们来学习一下Kotlin的when关键字。
关键字是一个有返回值的表达式,也就是它可以返回一个值。下面说说它的各种用法。
when处理枚举类
在Java中我们一般使用来处理枚举类,比如我想对每一种枚举值返回一个结果,就可以使用switch来处理。这种处理的需求在Kotlin中使用关键字来完成。下面是具体的代码。
Kotlin枚举类
Java使用switch处理枚举类
Kotlin使用when处理枚举类
是不是简洁了很多,当枚举常量匹配时,返回对应的箭头后面的值。由于这里是表达式,有返回值。同时这里的也可以让我们不需要显式指定函数返回值类型。
同时上面的代码不需要写,当我们需要多个匹配项目返回同一个值时,我们可以这样写。
Kotlin多个匹配项目返回同一个值
when匹配任意对象
Java中的的分支条件必须是、和。而Kotlin中的可以使用任何对象,我们这里举一个简单的颜色混合的例子来说明。
Kotlin代码
上面的例子中的对应于Java里面的,它也是不关注其中元素的顺序。所以上面的枚举匹配时也不会关注于元素的顺序,只要其中的元素是匹配的即可。分支等同于里面的分支,当与所有项都不匹配时执行。
不带参数的when
我们注意到,上面的对象在比较时,必须要创建额外的集合对象,这在性能上会有一定的损失,这里我们使用另外一种方法实现上面同样的功能,同时避免额外的对象创建。
Kotlin代码
虽然代码量有所增加,可读性也好像变差了一些,但是少了对象的创建,性能有所提升。
写在最后
上面的例子看出Kotlin的设计理念就是简洁明了,用更少的代码做更多的事,后续我们还会提到关键字的其他使用场景。
领取专属 10元无门槛券
私享最新 技术干货