继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Android 新贵 kotlin (3)

慕神8447489
关注TA
已关注
手记 1324
粉丝 174
获赞 961

webp

图左侧为 kotlin 的代码,而右侧为 java 的代码,如果您是有 Java 背景的,可以对比来看一看。


webp

kotlin 和老大的关系非同一般,这是 我们可以通过选中代码,然后右键选择,来将 java 的代码转换为 kotlin 的代码。


webp

转后的代码,简单明了,这也是他能挖老大墙角的原因。

webp

我们通常会通过分隔符,这里是空格,将字符串拆分为集合,然后根据需要获取我们想要的信息,这种场景想必大家都遇到过。下面的处理方式,大气点叫解决方案。大家可能再熟悉不过了。

webp

我们可以定义数据类型,这样相对数组更直接和容易理解。

webp

我们可以 kotlin 提供一种用于数据结构的类 叫做 data class。

webp

上面的代码对于 java developer 也是再熟悉不过了。

在 java 中我们通过 setter 和 getter 将私有变量取值和赋值进行控制。

webp

这里 set 无需带属性名,field 代表字段。今天分享主要让大家学会如何用 kotlin way 来写代码

webp

对于很多公用的属性,我们希望计算一次然后多次使用,再次使用时无需计算,例如我们终端设备的信息,在这里只需要获取一次就够了,我们就可以用到 kotlin 的代理类来实现。 代理类通过 by 这个关键字来实现。这里用到了 lazy 表示只有在第一次访问才会计算。

webp

webp

上面我们可以通过代理来实现观察者模式。

webp

webp

下图代码似成相识,特别你有 java 背景,会倍感亲切。我们看一看如何用 kotlin way 来实现。我们通常会在项目中写一些工具类来提供一些通用的方法。看这里的 StringUtil 提供一些对字符串操作的方法。

webp

大家多数都是从 java 转而学习 kotlin 。这里值得注意的是 kotlin 支持多范式编程的语言,我们需要用 kotlin 的方式来写程序,如果我们用 kotlin 来写代码,思维还是 java 方式。那就失去用 kotlin 的意义了。这里我们 object 来代替高成本的 class。

webp

看看这些代码,我们就又回到了 java。

webp

其实在 kotlin 我们很容易就可以扩展我们基本数据类型的方法。来扩展其一些方法。

webp

多态在 java 我们通常需要根据参数个数的不同,写多个同名的函数实现多态。这里我们给参数默认值来实现多态。

webp

webp



作者:zidea
链接:https://www.jianshu.com/p/79ce85de982c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP