我是Rust的新手,並且玩弄了一下。這是我的第一個程序,看起來我已經遇到了可怕的借用檢查器。 :)如何在沒有「無法移出借用內容」錯誤的情況下返回值?
pub struct Foo<T> {
memory: Vec<T>
}
impl<T> Foo<T> { {
pub fn set(&mut self, value: T) {
self.memory.push(value);
}
pub fn get(&self, index: usize) -> Option<&T> {
Some(&self.memory[index])
}
}
它編譯得很好,但我想從get函數返回值沒有引用。
如果我做
pub fn get(&self, index: usize) -> Option<T> {
Some(*&self.memory[index])
}
哪些失敗:
error: cannot move out of borrowed content [E0507] Some(*&self.memory[index])
我只是不知道爲什麼借檢查的行爲這種方式。
我該如何返回值?任何人都可以啓發我嗎?
Rem:這不是重複的問題。我不會要求某人解釋「索引內容」是什麼意思,但如何在沒有cannot move out of borrowed content
錯誤的情況下返回值。
或者實現'Copy'。 – Shepmaster
如何實現'T'的'Copy'? – LeMoussel
我在帖子中添加了這些信息。 – ljedrz