成都网站优化外包,北京标识设计制作公司,如何做exo网站,网站开发工程师职业道德Kotlin手写RxJava变换符
本文链接#xff0c;点击这里进入
1、核心点#xff1a;中转站存储之前的数据 2、三行代码实现RxJava
使用create、map、observer
fun main() {// create构造出RxJavaCore存放#xff0c;lambda执行完的结果create{WCH}.map{ // 扩展…Kotlin手写RxJava变换符
本文链接点击这里进入
1、核心点中转站存储之前的数据 2、三行代码实现RxJava
使用create、map、observer
fun main() {// create构造出RxJavaCore存放lambda执行完的结果create{WCH}.map{ // 扩展出map方法接收原先RxJavaCore的value数据lambda方法执行完后构造出RxJavaCore继续保存结果this :Hello world!}.observer{ // 进行消费println(this)}
}自定义操作符
class RxJavaCoreT(var value:T)
// action()执行完的结果用RxJavaCore保存起来
inline funO create(action:()-O) : RxJavaCoreO{return RxJavaCore(action())
}
// map
inline funI, O RxJavaCoreI.map(action: I.() - O) : RxJavaCoreO{return RxJavaCore(action(value))
}
// 监听者
inline funI RxJavaCoreI.observer(action:I.() - Unit){action(value)
}简化版本(一)
class RxJavaCoreT(var value:T)
inline funO create(action:()-O):RxJavaCoreO RxJavaCore(action())
inline funI,O RxJavaCoreI.map(action: (I) - O):RxJavaCoreO RxJavaCore(action(value))
inline funI RxJavaCoreI.observer(action:(I) - Unit) action(value)简化版本(二)
1、将Helper转换为Any(泛型) 扩展函数的传递过程
inline funR create(action:()-R):R action() // 保存到泛型中R中
inline funI,R I.map(action: (I) - R):R action(this) // 给I扩展自动拿到上一步骤泛型里面R的数据
inline funI I.observer(action:(I) - Unit) action(this)