Flutter:允许 Stream<Null> 吗?

Flutter: Stream<Null> is allowed?

有时,当我观看一些使用流的项目时,我会看到类似这样的内容:

final controller = StreamController<Null>();

然后:

controller.sink.add(null);

那么,是否允许在流中传递 null?为什么?

这是围绕接收器需要参数这一事实的黑客攻击。

有些人将流用作事件的流动而不是随时间变化的值,但 class 的设计并未考虑到这一点。他们通常会尝试将以下方法表示为流:

void onClick();

Null 因为在支持 void 之前使用了泛型类型参数,这意味着在这种情况下只有偶数的出现才有意义,但事件值没有意义。

对于 Null,值 null 是唯一有效的事件值。使用 void 可以传递一个不带任何参数的回调函数。