图
图左侧为 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 我们通常需要根据参数个数的不同,写多个同名的函数实现多态。这里我们给参数默认值来实现多态。
图
图
领取专属 10元无门槛券
私享最新 技术干货