rust - 如何将可变函数参数作为参数传递给另一个函数?

标签 rust

为什么 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);

最佳答案

您不需要使用 &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已经是 &mut Vec<i32> .

关于rust - 如何将可变函数参数作为参数传递给另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844633/

相关文章:

android - 为移动应用程序集成 Rust + Flutter + Kotlin

file - 如何在 Linux 和 Windows 上从 std::fs 支持的任何文件系统复制文件元数据?

rust - 在不分配新 String 的情况下检查 HashSet<Rc<String>> 中是否包含字符串切片

rust - 如果多个选项之一为无,则返回 Ok(None) 的惯用方法是什么,否则打开所有选项?

winapi - EnumProcessModules 返回 0 错误 299

rust - 如何将 Trait 作为应用程序数据传递给 Actix Web?

java - "cstdarg file not found"在 Rust 项目的 C 绑定(bind)上运行 jextract 时

math - 正弦函数在哪里?

rust - 如何分配给匹配分支内的匹配表达式中使用的变量?

rust - transmute::<*mut c_void, Option<unsafe extern "C"fn() -> ()>> 是什么意思?