Rust - 如何拆分/展平迭代器?

Sid*_*mas 1 iterator rust

如果我有一个vec<string>我可以用来filter_map处理和消除整体。但有没有相反的选择呢filter

本质上有一种惯用的方式来做这样的事情 -

word_list.iter().merge_map(|s| s.split(".")).collect()
                 ^this is an imaginary method.
Run Code Online (Sandbox Code Playgroud)

将输入["a","b.c","d"]变成["a","b","c","d"]

Cha*_*man 6

使用flat_map()

word_list.iter().flat_map(|s| s.split(".")).collect()
Run Code Online (Sandbox Code Playgroud)

这在语义上等同于map()then flatten()

word_list.iter().map(|s| s.split(".")).flatten().collect()
Run Code Online (Sandbox Code Playgroud)