• Kotlin中Range与异常体系剖析


    好用的集合扩展方法:

    下面来看一下对于集合中好用的一些扩展方法,直接上代码:

    如果我们想取出集合中的第一个值和最后一个值,用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..

  • 相关阅读:
    一道比较有趣的题
    笑话两则
    时钟
    组策略 简单介绍
    网页乱码问题ASP.NET
    同性恋的公鸡
    SQL中CASE函数_可解决编程中空表检索的一些问题
    百万网?
    黑客 故事
    word有趣问题集锦
  • 原文地址:https://www.cnblogs.com/webor2006/p/11521623.html
Copyright © 2020-2023  润新知