以下代码无法编译,因为MutRef不是
这样做的动机是将大量的函数参数打包到一个结构体中,以便可以将它们作为一组传递,而不需要单独传递。
Copy
。它不能被复制,因为&'a mut i32
不是Copy。是否有任何方法使MutRef具有类似于&'a mut i32
的语义?这样做的动机是将大量的函数参数打包到一个结构体中,以便可以将它们作为一组传递,而不需要单独传递。
struct MutRef<'a> {
v: &'a mut i32
}
fn wrapper_use(s: MutRef) {
}
fn raw_use(s: &mut i32) {
}
fn raw_ref() {
let mut s: i32 = 9;
let q = &mut s;
raw_use(q);
raw_use(q);
}
fn wrapper() {
let mut s: i32 = 9;
let q = MutRef{ v: &mut s };
wrapper_use(q);
wrapper_use(q);
}