亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android 新貴 kotlin (5)

標簽:
Kotlin

webp

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

webp

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

webp

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

webp

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

webp

webp

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

webp


webp

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

webp

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

webp


webp

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

webp

webp

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

webp


webp

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

webp

webp

webp

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

webp

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



作者:zidea
链接:https://www.jianshu.com/p/8cef3a55fd1d


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消