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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。