为什么这不编译:
fn main() {
let mut b = Box::new(Vec::new());
b.push(Vec::new());
b.get_mut(0).unwrap().push(1);
}
Run Code Online (Sandbox Code Playgroud)
虽然这样做:
fn main() {
let a = Box::new(Vec::new());
let mut b = *a;
b.push(Vec::new());
b.get_mut(0).unwrap().push(1);
}
Run Code Online (Sandbox Code Playgroud)
这也是:
fn main() {
let mut b = Vec::new();
b.push(Vec::new());
b.get_mut(0).unwrap().push(Vec::new());
b.get_mut(0).unwrap().get_mut(0).unwrap().push(1)
}
Run Code Online (Sandbox Code Playgroud)
第一和第三个对我来说是概念上是相同的- Box一中Vec的TOR Vec整数的职责范围和Vec的TOR Vec的TOR Vec整数的职责范围,但最后一个导致每个向量是可变的,而第一个使内部矢量不变.
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |