用途:该技能用于在用户询问 Effect Sink、Sink.collectAll、Sink.sum、Sink.fold、流消费者、Sink.forEach 或创建自定义 Sink 时提供参考。Sink 是流元素的消费者并产出结果,类型为 Sink<A, In, L, E, R>,分别表示结果类型、输入元素类型、剩余元素类型、错误类型和所需环境,与 Stream 互为对应。
主要能力:内置 Sink 覆盖收集(collectAll、collectAllToArray、collectAllN、collectAllWhile)、聚合(sum、count、head、last、take)、折叠(foldLeft、fold、foldEffect)、副作用(forEach、drain)。自定义可用 Sink.make、Sink.fromEffect、Sink.fromPush。操作包括 map、contramap、dimap 变换,zip、race 组合,filterInput 过滤,collectLeftover 处理剩余元素,zipPar 并行,foldChunks 按块处理。
使用方式:通常以 Stream.run(sink) 运行,例如 Stream.make(1,2,3,4,5).pipe(Stream.run(Sink.sum))。常见模式有按批 collectAllN 后 mapEffect 批量写库、zip 组合多聚合一次遍历、forEach 追加写文件。
适用场景:流式数据处理、聚合统计、批量入库、文件写入等。
限制:资料未提供该技能的安装方式、收费、平台与效果信息;具体 API 行为以 Effect 官方文档为准。