Rust: map中的问题,两种写法有什么不同?

因为有了map,你知道其中的不同么?

版本1报错:

//version 1
            (0..n).map(|_| {
                (bracket_1 + 1_usize..bracket_2)
                    .map(|x| list_2.push(list.get(x).unwrap().to_string()))
             }).collect::>();

主要的错误提示:list_2生命周期太短,不能保证其元素安全被借用。

改成以下的版本就ok了。

版本2

//verison 2
            (0..n)
                .map(|_| for j in bracket_1 + 1_usize..bracket_2 {
                    let tp = list.get(j).unwrap().to_string();
                    list_2.push(tp);
                })
                .collect::>();

为什么会有这个区别?

你可能感兴趣的:(Rust)