Android 新贵 kotlin(3)

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

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

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

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

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

我们可以 kotlin 提供一种用于数据结构的类叫做 data class。这种类应该相对比较轻量级。类似于 golang 和 cpp 的 structure 吧。

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

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

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

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

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

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

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181211B1GP2U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券