我发现了一个令人困惑的DART Stream
平等行为.
final streamController = StreamController<int>();
final stream1 = streamController.stream;
final stream2 = streamController.stream;
print(stream1 == stream2); // Prints true
print(identical(stream1, stream2)); // Prints false
如果stream2
指的是stream1
,则它的工作方式与预期相同:
final streamController = StreamController<int>();
final stream1 = streamController.stream;
final stream2 = stream1;
print(stream1 == stream2); // Prints true
print(identical(stream1, stream2)); // Prints true
这一切对StreamController<int>.broadcast()
的人来说都是一样的.如何解释这种令人困惑的行为?