好用的集合扩展方法:
下面来看一下对于集合中好用的一些扩展方法,直接上代码:
如果我们想取出集合中的第一个值和最后一个值,用Java方式是get(0)和get(size-1),但是在Kotlin中提供有现成的方法,如下:
其中看一下它的定义,就是标准的扩展方法的定义:
另外如果想过滤元素在之前也已经用过了,用filter,比如如果想取出偶数的元数,如下:
简单看一下它的定义:
下面再来定义一个集合:
看一下它的定义:
运行一下:
接着继续:
看下它的定义:
也就是如果第一个元素或是最后一个元素为null,则会返回null,比较简单。
接下来再来看一下Map:
另外还可以用它来构造HashMap,如下:
Range:
关于范围其实在之前已经使用过了,这里再集中的演示一下:
注意一个细节,在Kotlin中的a不需要加类型,因为它可以推断出来:
接下来如果想降序的输出呢?很简单嘛:
啥输出都木有,为啥呢?其实它等价于:(int a = 4; a <=1; i++),因为还是按升序,那正确的做法应该是这样:
其中downTo是一个中缀表达式:
其中还可以加入步长:
我们知道对于Java而言范围基本上都是左闭右开区间,而我们看到的Kotlin表示范围的都是左闭右闭区间,其实也有方式来表达跟Java一样的左闭右开的效果,如下:
异常体系:
在Kotlin中也提升了很完善的异常体系,跟Java相同的这里就不多说了,重点是来学习跟Java所不同的:
1、在Kotlin中的try是一个表达式,可以将结果赋值给一个变量,下面看一下代码:
接下来将字符串改成非数字的:
2、Kotlin中是没有checked exception的,我们知道在Java中有两种异常,一种是RuntimeException,也就是unchecked exception,还有一种是非运行时异常,它是checked exception,所以checked exception也就是在我们编写代码时就必须得进行捕获的,所以代码中就会充斥掉大量的try..catch..finally类似的代码,而在Kotlin中所有的异常都是运行期异常,都不需要在编写代码时强制要进行try..catch..