dart:async
库中Stream.distinct
方法的用法介绍如下。
用法:
Stream<T> distinct(
[bool equals(
T previous,
T next
)?]
)
如果数据事件等于前一个数据事件,则跳过它们。
返回的流提供与此流相同的事件,只是它从不提供两个相等的连续数据事件。也就是说,错误被传递到返回的流,如果数据事件与最近发出的数据事件不同,则它们被传递。
相等性由提供的equals
方法确定。如果省略,则使用最后提供的数据元素上的'==' 运算符。
如果equals
抛出,数据事件将替换为包含抛出错误的错误事件。该行为等同于发出错误事件的原始流,并且它不会改变最近发出的数据事件是什么。
如果此流是,则返回的流是广播流。如果多次收听广播流,则每个订阅将单独执行equals
测试。
例子:
final stream = Stream.fromIterable([2, 6, 6, 8, 12, 8, 8, 2]).distinct();
stream.forEach(print); // Outputs events: 2,6,8,12,8,2.
相关用法
- Dart Stream.drain用法及代码示例
- Dart Stream.fromFutures用法及代码示例
- Dart Stream.fold用法及代码示例
- Dart Stream.map用法及代码示例
- Dart Stream.asBroadcastStream用法及代码示例
- Dart Stream.handleError用法及代码示例
- Dart Stream.where用法及代码示例
- Dart Stream.reduce用法及代码示例
- Dart Stream.join用法及代码示例
- Dart Stream.error用法及代码示例
- Dart Stream.periodic用法及代码示例
- Dart Stream.take用法及代码示例
- Dart Stream.every用法及代码示例
- Dart Stream.lastWhere用法及代码示例
- Dart Stream.contains用法及代码示例
- Dart Stream.eventTransformed用法及代码示例
- Dart Stream.firstWhere用法及代码示例
- Dart Stream.empty用法及代码示例
- Dart Stream.multi用法及代码示例
- Dart Stream.timeout用法及代码示例
- Dart Stream.transform用法及代码示例
- Dart Stream.singleWhere用法及代码示例
- Dart Stream.fromFuture用法及代码示例
- Dart Stream.skipWhile用法及代码示例
- Dart Stream.skip用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 distinct method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。