【问题标题】:How to pass a mutable function parameter as argument to another function?如何将可变函数参数作为参数传递给另一个函数?
【发布时间】:2015-11-21 14:44:34
【问题描述】:

为什么 Rust 会阻止此代码编译,并出现错误:“无法借用不可变局部变量 arr as mutable”?如何将向量作为可变引用传递给另一个函数?

let mut vec = vec![0];

fn bar(vec: &mut Vec<i32>) {
    // some code here
}

fn foo(vec: &mut Vec<i32>) {
    bar(&mut vec);
}

foo(&mut vec);

【问题讨论】:

标签: rust


【解决方案1】:

在这种情况下您不需要使用&amp;mut

let mut vec = vec![0];

fn bar(vec: &mut Vec<i32>) {
    // some code here
}

fn foo(vec: &mut Vec<i32>) {
    bar(vec);
}

foo(&mut vec);

因为vec 已经是&amp;mut Vec&lt;i32&gt;

【讨论】:

    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2021-11-09
    • 1970-01-01
    • 2019-10-09
    • 2019-08-19
    相关资源
    最近更新 更多