Count 运算符将发出项目的 Observable 转换为一个发出单个值的 Observable,该值代表源 Observable 发出的项目数量。
如果源 Observable 以错误结束,Count 将在发出项目之前传递此错误通知。如果源 Observable 根本不结束,Count 不会发出项目,也不会结束。
RxClojure 有这个运算符的 count 和 longCount 变体,但实际上这两个都返回长整型值。
RxCpp 将此运算符实现为 count。
在 RxGroovy 中,运算符称为 count,它创建的 Observable 发出 Integer 值。还有一个 countLong,它的 Observable 发出 Long 值。
def myObservable = Observable.create({ aSubscriber ->
if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext('Three');
if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext('Two');
if(false == aSubscriber.isUnsubscribed()) aSubscriber.onNext('One');
if(false == aSubscriber.isUnsubscribed()) aSubscriber.onCompleted();
});
myObservable.count().subscribe(
{ println(it); }, // onNext
{ println("Error: " + it.getMessage()); }, // onError
{ println("Sequence complete"); } // onCompleted
);3 Sequence complete
count()countLong()在 RxJava 中,运算符称为 count,它创建的 Observable 发出 Integer 值。还有一个 countLong,它的 Observable 发出 Long 值。
String[] items = new String[] { "one", "two", "three" };
assertEquals( new Integer(3), Observable.from(items).count().toBlocking().single() );count()countLong()在 RxJS 中,count 运算符统计源 Observable 中满足指定谓词的项目的数量。该谓词采用一个函数的形式,该函数接受三个参数
如果谓词函数返回 true,count 将增加它将在源 Observable 完成时报告的项目的计数。如果你想统计源 Observable 发出的所有项目,只需传递一个始终返回 true 的谓词给 count
numberOfItems = someObservable.count(function() { return true; });
count 是以下包的一部分
rx.all.jsrx.all.compat.jsrx.aggregates.js
count 需要以下任意一个包
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.jsRxKotlin 将此运算符实现为 count。
val list = listOf(1, 2, 3, 4, 5) assertEquals( 5, Observable.from(list)!!.count()!!.toBlocking()!!.single() )
在 Rx.NET 中,此运算符创建的 Observable 发出 Integer 值,但还有一个 LongCount,它的 Observable 发出 Long 值。对于这两个变体,你可以将源 Observable 作为参数传递给运算符,也可以将运算符作为源 Observable 的实例方法调用(在这种情况下,你省略参数)。
RxPHP 将此运算符实现为 count。
返回一个 observable 序列,其中包含一个值,该值代表指定 observable 序列中满足条件(如果提供)的元素数量,否则为项目的数量。
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/count/count.php $source = \Rx\Observable::fromArray(range(1, 10)); $subscription = $source->count()->subscribe($stdoutObserver);
Next value: 10
Complete!
在 RxPY 中,你可以选择向 count 传递一个谓词,该谓词将源 Observable 发出的项目作为参数。如果你这样做,count 仅发出源 Observable 中谓词评估为 true 的项目的计数。否则,它将发出源 Observable 发出的所有项目的计数。
numberOfItems = someObservable.count() numberOfNegativeItems = someObservable.count(lambda x: x < 0)
在 Rx.rb 中,你可以选择向 count 传递一个谓词,该谓词将源 Observable 发出的项目作为参数。如果你这样做,count 仅发出源 Observable 中谓词评估为 true 的项目的计数。否则,它将发出源 Observable 发出的所有项目的计数。
在 RxScala 中,count 运算符统计源 Observable 中满足指定谓词的项目的数量。该谓词接受一个发出的项目作为参数并返回一个布尔值。count 将发出该谓词返回 true 的所有项目的计数。
如果你想统计源 Observable 发出的所有项目并将此计数作为 Integer 发出,请使用 length 或 size,或者使用 longCount 将其作为 Long 发出。