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..

  • 相关阅读:
    .NET HttpWebRequest应用
    .NET 文件上传和文件接收
    小程序报错:对应的服务器 TLS 为 TLS 1.0 ,小程序要求的 TLS 版本必须大于等于 1.2
    发布微信小程序体验版
    .NET 通过entity framework报数据库连接错误:ORA-01017: invalid username/password; logon denied
    将Oracle 12c的某用户数据迁移至OracleXE的用户
    C# Oracle 时间字符串转时间类型
    在.NET中调用Java的类
    Oracle 取前几条记录
    oracle impdp将导出用户的所有对象导入至另一个用户下,生成的触发器语句问题处理
  • 原文地址:https://www.cnblogs.com/webor2006/p/11521623.html
Copyright © 2011-2022 走看看