Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 传递RefCell的内容<&;mut T>;函数_Rust - Fatal编程技术网

Rust 传递RefCell的内容<&;mut T>;函数

Rust 传递RefCell的内容<&;mut T>;函数,rust,Rust,对借用的RefCell(即Ref)调用方法的工作方式与预期相同,但我似乎无法将其传递给函数。考虑下面的代码: use std::cell::RefCell; fn main() { let mut nums = vec![1, 2, 3]; foo(&mut nums); println!("{:?}", nums); } fn foo(nums: &mut Vec<usize>) { let num_cell = RefCell:

对借用的
RefCell
(即
Ref
)调用方法的工作方式与预期相同,但我似乎无法将其传递给函数。考虑下面的代码:

use std::cell::RefCell;

fn main() {
    let mut nums = vec![1, 2, 3];
    foo(&mut nums);
    println!("{:?}", nums);
}

fn foo(nums: &mut Vec<usize>) {
    let num_cell = RefCell::new(nums);

    num_cell.borrow_mut().push(4);

    push_5(*num_cell.borrow_mut());
}

fn push_5(nums: &mut Vec<usize>) {
    nums.push(4);
}
在取消引用
Ref
之后,我希望得到内部的可变引用,这样错误对我来说就没有意义了。有什么好处

push_5(*num_cell.borrow_mut())

删除
*
,编译器建议

错误[E0308]:类型不匹配
-->src/main.rs:14:12
|
14 | push_5(num_cell.borrow_mut());
|            ^^^^^^^^^^^^^^^^^^^^^
|            |
|应为可变引用,找到结构`std::cell::RefMut`
帮助:考虑在这里可变地借用:'MutNuthCyto.BooFuffMut.()
|
=注意:应为类型`&mut std::vec::vec`
找到类型“std::cell::RefMut”