在Rust

时间:2017-05-23 22:27:07

标签: rust

我尝试编写与此类似的代码:

fn main() {
    let i = ['a', 'b'];
    let qux = i.iter().flat_map(|&foo| {
        let bar = [foo, 'c'];
        (0usize..42).map(|ii| {
            bar.iter() /*.map(some_function)*/ .collect::<String>()
        })
    }).min();
}

这不起作用,因为bar的活动时间不够长,而且我还没有找到借用检查员不会抱怨的任何解决方案。有没有机会以功能风格做这种事情?

另外,flat_map为什么必须移动或复制值?我想,如果我能做到的话

    let qux = i.iter().map(|&foo| [foo, 'c']).flat_map(|&bar| {
        /* ... */
    }).min();

它能够确保bar的寿命足够长。

0 个答案:

没有答案