产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能

全文共1293字 , 预计学习时长5分钟
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
图源:unsplash
在被指定为Android的官方语言后 , Kotlin逐渐取代了Java , 成为现今Android开发人员的首选 , 它让Android开发更加轻松和快捷 。
Java和Kotlin语言的相似之处颇多 , 因此Java开发人员转用Kotlin比较容易 。 但也正因如此 , 开发人员很容易忽略Kotlin的独特性及其惯用方法 , 这可能导致编写的Kotlin代码与Java的代码类似 。
【产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能】有一些Kotlin化的方式能让我们在Android中编写更简洁的代码 , 一起来学习吧!
用一行代码生成Kotlin列表
用Kotlin创建具有默认值的列表非常简单 。 这个代码行可以创建一个长度为10的整数数组 , 每个元素都初始化为1:
IntArray(10){1}.asList()
但若想创建具有不同元素的列表该怎么办呢 , 经典的实现方法当然是使用for循环 , 但是使用Kotlin只需一行代码就能做到:
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
使用“let”函数检查可为空的属性
在进行后续操作之前 , 我们通常会使用“ifnotnull”控制结构对类型进行null检查 。 使用Kotlin的let扩展函数有助于避免复杂的分支逻辑 。 Kotlin的let是作用域函数 , 在其内部声明的属性不能在外部使用 。 可以将其用于嵌套let或链接一组可为空的对象 。
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
使用Kotlin的Elvis运算符(?:)可以为可空属性提供默认值 。 例如 , 在上述代码中 , 可以将doSomething(a?:0)作为函数调用 , 从而确保a具有默认值 。
使用“require”或“check”函数处理提前退出条件
require函数用于验证传递的参数 , 如果为false , 则抛出IllegalArgumentException 。
而check函数在对象状态为false时会抛出IllegalStateException 。 在Android的Kotlin代码库中设置提前退出条件时 , 这两种方法都很好用 。
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
对于简单方案 , 首选方法引用而不是Lambda表达式
尽管lambda表达式在大多数用例中都很好 , 但在只需访问属性时 , 使用方法引用会更好 。 成员引用用::表示 , 类或对象写在左侧 , 被调用的属性写在右侧 。 看看下面这个例子 , 在此背景下 , 使用成员引用而不是lambda表达式使得代码更短并且更易于阅读 。
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
使用“partition”和“groupBy”运算符轻松拆分列表
partition可以将列表拆分为一对子列表 , 第一个子列表包含满足指定条件的元素 , 其余元素则放在第二个子列表中 。 而groupBy以键值对的形式返回子列表的映射 。 通过在groupBy上调用values属性可以获得一个由列表组成的列表 。
以下示例演示了每种方法的用例:
产业气象站 Android开发人员看过来:这些Kotlin化方法帮你提高开发技能
文章图片
用一行代码交换两个属性
交换两个变量是很多开发人员面临的第一个编程问题 。 传统方法是定义一个临时变量来交换属性 。 你当然可以使用a=a-b和b=b-a替代这种方法并将代码减少到两行 , 但这里有更好的方法 。 通过使用Kotlin的常用表达式 , 可以在一行中完成两个属性的交换:
a=b.also{b=a}
使用“apply”和“with”函数减少样板代码
Apply和with是两个重要的作用域函数 , 有助于在设置对象属性时消除对对象的显式引用 。 某种程度上 , 这两个函数都可以在返回对象之前对其进行转换 。 在对象初始化时调用apply函数 , 而with函数需要将对象作为参数传递 。 这样可以减少一些样板代码 , 使代码库清晰明了 。