当在一个 struct 切片上循环时,我得到的值是一个引用(这很好),但是在某些情况下,在许多地方必须将var
写为(*var)
是很烦人的.
有没有更好的方法避免重新声明变量?
fn my_fn(slice: &[MyStruct]) {
for var in slice {
let var = *var; // <-- how to avoid this?
// Without the line above, errors in comments occur:
other_fn(var); // <-- expected struct `MyStruct`, found reference
if var != var.other {
// ^^ trait `&MyStruct: std::cmp::PartialEq<MyStruct>>` not satisfied
foo();
}
}
}
见:actual error output(更神秘).