可观察比方说,我们有源可观察到一个int:如何产生一个从另一个
val source:Observable[Int]
我想创造另一个观察的,生产值,它们的区别在源来首次出现值大于10 :
def detect() = Observable[Int](
subscriber =>
if (!subscriber.isUnsubscribed) {
var start:Option[Int] = None
source.subscribe(
item => {
if (start.isEmpty) {
start = Option(item)
}
else {
start.filter(v => Math.abs(item - v) > 10).foreach {
item => subscriber.onNext(item)
}
}
}
)
subscriber.onCompleted()
}
)
在这里,我用VAR 开始持有源可观察到的第一个值。
有没有简化此代码的方法?我不喜欢的VAR值分配给这种方法
我该如何保持源的第一个值?我将来源的每个下一个值与第一个值比较 – Nyavro
啊,我误解了你的问题;另一个答案似乎是正确的。 –