• 天高地迥
    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
    
    