天高地迥
2023-11-06
来自上海
Vec<String> []索引不能move的原因思考: Vec实现了Index trait的index方法,该方法返回一个引用。然后使用[]语法糖的时候,编译器会自动解引用:v[0]变成*v.index(&0)。其实错误的本质是borrowed value不能move out。
作者回复: 👍
2
-
2023-11-06
来自北京
定义了类型以后,let a: Vec<u32> = [1, 2, 3, 4, 5];语法错误 修改为let a= [1, 2, 3, 4, 5];
作者回复: let a: Vec<u32> = vec![1, 2, 3, 4, 5];
PEtFiSh
2023-11-06
来自上海
for (k, v) in myhash { //`myhash` moved due to this implicit call to `.into_iter()` // todo: // 这里会获得v的所有权,并且消耗掉myhash } println!("{:?}", myhash); //value borrowed here after move