zoukankan      html  css  js  c++  java
  • 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..

  • 相关阅读:
    Leetcode 493.翻转对
    Leetcode 491.递增子序列
    Leetcode 488.祖玛游戏
    Leetcode 486.预测赢家
    Leetcode 483.最小好进制
    Leetcode 482.密钥格式化
    商品期货投资的那些事(八)为你的套利头寸买个保险
    商品期货投资的那些事(七)趋势套利震荡投机、直道飘移弯道超越
    商品期货投资的那些事(五)做空焦煤焦炭?你是想跟发改委作对吗?
    商品期货投资的那些事(六)期现投资这行怎样才能赚大钱?
  • 原文地址:https://www.cnblogs.com/webor2006/p/11521623.html
Copyright © 2011-2022 走看看