我有2层结构:将成员的所有权从一个结构移到另一个结构?
struct MyVector {
storage: Vec<u32>,
}
struct MyVectorBuilder {
storage: Vec<u32>,
}
impl MyVectorBuilder {
fn new() -> MyVectorBuilder {
MyVectorBuilder { storage: Vec::new() }
}
fn build_my_vector(&mut self) -> MyVector {
// Doesn't compile: ^^^^ cannot move out of borrowed content
MyVector { storage: self.storage }
}
}
有没有办法告诉编译器MyVectorBuilder
不会对如下这样build_my_vector()
调用它会让我移动到storage
MyVector
使用吗?
注意:您可能想更好地熟悉Rust命名约定,方法应该是'snake_case'而不是'PascalCase'。 –
@MatthieuM。谢谢,旧习惯 – Shmoopy
不用担心,编译器会一直提醒你,直到你遵守:) –