Android 新贵 kotlin (5)

作者 : 开心源码 本文共909个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共167人阅读

我们给 train 赋值为 null , 报错而后就出现了,有两个起因,在 kotlin 中默认 val 为immutable 类型,所以我们不能为 val 类型从新赋值。这个我们可以使用 var 关键字来定义变量 train 。第二个错误就是我们在 kotlin 不能将 null 赋值给变量。

但是在 Java 这样做,赋值为 null 是没有问题的。我们的 kotlin 和 java 又是那么友好。是的这是有办法的。

我们定义一个方法,接受java 的 JavaMoney 类型作为参数。我们可以在类后面增加一个 ?,表示该类可以为 null。

假如JavaMoney 可以为 null 值,那么 money 即可能为 null。假如 money 为 null,money.amount 就用报空指针异常。我们有两种处理方案。第一种比较传统。就是判断 money 不为空时调用 money的 amount。?

?:表示当前能否对象可以为空,!!: 表示当前对象不为空的情况下执行。

在 kotlin 中也支持高阶函数,所谓高阶函数,就是函数可以作为参数,作为返回值来使用。kotlin 也支持高阶函数。在函数? findEmails 中,我们将一个函数作为参数传入 findEmails 这个函数中。而后写个 TODO 函数。这是一个有意思的,kotlin 特有的方法。

上图中为 kotlin 的 TODO 的源码,返回值为 Nothing。

我们使用 Gson 这个库来实现对 json 文件读取以及解析。User 是一个数据类,相似 java Bean 我们这里还使用到了 Role 这个枚举类。

之前在学习 Java8 和 javascript 的 stream 我们对数组进行遍历,让后这里我们可以用 it 来表示每个遍历的对象,调用 sortedBy 来根据 User 对象某个属性对集合进行排序,最后调用 map 方法。

通过查看 to 源码,我们看到其实他就是 pair 的糖果,包装了一层。

这里我们需要得到第一个符合条件 User 即可以了,所以调用 first()。

在 javascript 的 es6 的新特性,大家可能已经都理解到了 deconstruct 解构,这里我们可以用 _(下划线) 来代替没有被使用的属性。如图我们可以将 username 和 email 替换为 _? 来表示。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android 新贵 kotlin (5)

发表回复