快速上手 Kotlin 开发系列之集合操作符
Posted 张鹿鹿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速上手 Kotlin 开发系列之集合操作符相关的知识,希望对你有一定的参考价值。
本节通过 RxJava 的集合操作引入 Kotlin 的集合操作符。
如果大家有用过 RxJava 一定对操作符的概念并不陌生,RxJava 允许我们对数据做一系列的链式调用,在每一步中改变数据的格式,最终得到我们想要的数据。Kotlin 中原生的为集合添加了海量的操作符,基本上 RxJava 有的操作符 Kotlin 都会有语言层面的支持。
先用 RxJava 实现一段链式调用,后面再使用 Kotlin 的集合操作符完成相同的操作,来对比下两种语法实现上的效果会有怎样的差别。
RxJava 示例
示例中,包含一个 String 类型和一个 Integer 类型的数据,目的是通过 Integer 数组中的 index 顺序拼接 String 数组的内容。先把整体的代码结构附上,之后拆解开分析:
首先通过 flatMap 做一次形变,flatMap 允许你传入一个集合类型的数据源,之后可以将这些集合类型的数据源拆散成一个一个的数据返回,比如示例中返回的是一个 Integer 值,之后后续操作将对它做单个调用。
接下来,只有当这个 Integer 值小于数组 a 的长度时该值才会返回否则就会被过滤掉。示例中数组长度为 8,也就是 >= 8 的值都会被过滤。
map 能够将传入的类型转换为另外一种类型输出。示例中,将传入的 integer 转换 a 中对应的 String 类型。也就是去取 a 中对应位置的字符串。
reduce 表示一次合并操作,实际上就是两个元素合并成一个元素返回,它的前两个泛型参数即为输入的待合并的两个参数类型,第三个泛型参数表示输出类型。示例中就是将两个 String 拼接输出。
最后订阅输出并拼接结果:
来看下运行结果:
以上就是本节内容,欢迎大家关注~
以上是关于快速上手 Kotlin 开发系列之集合操作符的主要内容,如果未能解决你的问题,请参考以下文章