이 코드를 살펴보십시오 =>
void main() async {
Stream<int> _intStream() async* {
for (int i = 0; i < 10; i++) yield i;
}
Stream<int> _even() => _intStream().where((int i) => i % 2 == 0);
Stream<bool> _isEven(Stream<int> stream) => stream.map((int i) => i % 2 == 0);
print('test 1: should print 5 [true] and 5 [false] alternate');
await for (bool b in _isEven(_intStream())) {
print('test 1: $b');
}
print('test 2: should print 5 [true]');
await for (bool b in _isEven(_even())) {
print('test 2: $b');
}
print('test 3: should print ONLY ONE [true]');
await for (bool b in _isEven(_even().distinct())) {
print('test 3: $b');
}
}
내가 distinct()
잘못된 방법을 사용 하고 있습니까?
미리 감사드립니다
신경 쓰지 마십시오. 내가 의도 한대로 다음과 같은 작업을 잘못된 위치에 두었습니다.
void main() async {
Stream<int> _intStream() async* {
for (int i = 0; i < 10; i++) yield i;
}
Stream<int> _even() => _intStream().where((int i) => i % 2 == 0);
Stream<bool> _isEven(Stream<int> stream) => stream.map((int i) => i % 2 == 0);
print('test 1: should print 5 [true] and 5 [false] alternate');
await for (bool b in _isEven(_intStream())) {
print('test 1: $b');
}
print('test 2: should print 5 [true]');
await for (bool b in _isEven(_even())) {
print('test 2: $b');
}
print('test 3: should print ONLY ONE [true]');
await for (bool b in _isEven(_even()).distinct()) {
print('test 3: $b');
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다