好用的集合扩展方法:

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

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

最新文章

  1. Bootstrap栅格系统详解,响应式布局
  2. HIT2739 The Chinese Postman Problem(最小费用最大流)
  3. 可以调整gif动画图片尺寸的很实用的php类
  4. vim 配置 设置搜索 高亮
  5. Android开发UI之开源项目第一篇——个性化控件(View)篇
  6. N个数的数组求N-1个数组合乘积最大的一组
  7. matlab函数之bsxfun
  8. SVN在Android Studio中的配置
  9. MySQL高可用基础之keepalived+双主复制【转】
  10. BZOJ 1212: [HNOI2004]L语言( dp + trie )
  11. .net操作PDF的一些资源(downmoon收集)
  12. mysql grant授权
  13. 17.4.3 使用MulticastSocket实现多点广播(3)
  14. 【Electron】Electron开发入门(六):项目生成setup安装程序
  15. vue-devtools(vue 2.0)手动安装与使用 ? 如何处理Vue.js is detected on this page ?
  16. Ubuntu中安装 mercurial – TortoiseHG
  17. Magento 2.2.5和2.2.6的bug 产品设置special price又删除后价格排序有误
  18. Android开发 集成极光推送中的问题
  19. MySQL利用xtrabackup在线修复或新增从库
  20. Linux 云服务器中安装 rinetd 进行转发端口实现

热门文章

  1. linux用户态和内核态理解
  2. python入门和杂识
  3. 自动问答最新研究成果展示(SQuAD)
  4. xmlrpc与jsonrpc
  5. 1 RAID技术入门
  6. 袁新生《LINGO和Excel在数学建模中的应用》
  7. 浅谈SQL Server事务与锁(上篇)
  8. 关于于c++中的类型转换
  9. git 学习笔记 --从远程库克隆
  10. C#泛型集合之——字典