如何 tap() 迭代器?

Jay*_*Jay 8 functional-programming rust

Rust 中的tap()等价物是什么?

它对迭代器中的每个项目调用一个函数map(),但不是传递函数返回的值,而是tap()返回原始项目。

例如,我想以println!()某种方式在流中调用:

foo.into_iter()
  .filter(|x| x == target)
  .tap(|x| println!("{:?}", x)) // <-- what goes here?
  .map(|c| c.result)
Run Code Online (Sandbox Code Playgroud)

更正:

tap()在整个迭代器上调用一次闭包
inspect()在迭代器中的每个项目上调用闭包

kmd*_*eko 14

这是这样Iterator.inspect()

foo.into_iter()
  .filter(|x| x == target)
  .inspect(|x| println!("{:?}", x))
  .map(|c| c.result)
Run Code Online (Sandbox Code Playgroud)