因为有了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::<Vec<_>>();
主要的错误提示: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::<Vec<_>>();
为什么会有这个区别?