我如何svn switch
在Mercurial中做什么?
那是改变我的工作目录切换到存储库中的另一个分支?
我有一个带有两个向量的结构,在Arc<Mutex<TwoArrays>>
.
pub struct TwoArrays {
pub a: Vec<i32>,
pub b: Vec<i32>,
}
fn add_arrays(mut foo: Arc<Mutex<TwoArrays>>) {
let mut f = foo.lock().unwrap();
//Loop A: compiles
for i in 0..f.a.len() {
for j in 0..f.b.len() {
f.b[j] += f.a[i];
}
}
//Loop B: does not compile
for i in f.a.iter() {
for j in 0..f.b.len() {
f.b[j] += i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我创建一个使用迭代器的循环,并在其中写入另一个循环(循环 B)时,编译器会抱怨:
pub struct TwoArrays {
pub a: Vec<i32>,
pub b: Vec<i32>,
}
fn add_arrays(mut foo: Arc<Mutex<TwoArrays>>) …
Run Code Online (Sandbox Code Playgroud)