我有一个scalaz-stream进程:
val src = Process.repeatEval(Task(in.take())) : Process[Task, Option[T]]
如何摆脱选项?
到目前为止,我已经使用了收藏,但它并不优雅:
src.collect { case Some(x) => x } : Process[Task, T]
有更好的方法吗?
答案 0 :(得分:0)
您的解决方案是正确的,但实现已存在于scalaz-stream(< = 0.8),process1.stripNone
中:
src.pipe(process1.stripNone)
或
src |> process1.stripNone
许多其他转换(可能是有状态的)在process1
中定义,因此值得查看文件以寻找可能有用的转换。