Я немного сумасшедший. Я пытаюсь создать функцию расширения Observable<BigDecimal>
(против RxJava 2.x), чтобы испускать среднее значение выбросов, но я получаю ошибку компиляции с помощью функции Single.zip()
. Есть ли у кого-нибудь идеи, что я делаю неправильно? Я попытался быть явным со всеми моими типами, и это не сработало...
import io.reactivex.Observable
import io.reactivex.Single
import java.math.BigDecimal
fun Observable<BigDecimal>.sum() = reduce { total, next -> total + next }
//compile error
fun Observable<BigDecimal>.average() = publish().autoConnect(2).let {
Single.zip(it.sum().toSingle(), it.count()) {
sum, count -> sum / BigDecimal.valueOf(count)
}
}