MST
星途 面试题库

面试题:Kotlin中RxKotlin的操作符应用

在RxKotlin中,假设有一个发射整数序列的Observable,要求使用操作符实现:过滤出偶数,对这些偶数进行平方运算,然后将结果累加。请编写相应的Kotlin代码实现此功能,并解释每一步操作符的作用。
35.5万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.kotlin.subscribeBy

fun main() {
    val observable = Observable.range(1, 10)
    observable
       .filter { it % 2 == 0 } // 过滤出偶数,filter操作符会对Observable发射的每一个数据应用给定的判断函数,只有判断函数返回true的数据才会被继续传递
       .map { it * it } // 对偶数进行平方运算,map操作符会对Observable发射的每一个数据应用给定的变换函数,将变换后的数据继续传递
       .reduce { acc, value -> acc + value } // 将结果累加,reduce操作符会对Observable发射的数据序列进行累积操作,通过给定的累积函数,从初始值(如果有指定)或序列的第一个值开始,依次对后续的值进行累积
       .subscribeBy(
            onSuccess = { result -> println("最终结果: $result") },
            onError = { error -> println("发生错误: $error") }
        )
}