小编Bla*_*tko的帖子

克隆 mut 引用以便在别处使用 mut 引用

我在使用函数时出错,因为借用一个可变的,如果还有一个不可变的借用,就像多次借用一个可变的一样是不允许的。

pub fn _function(list: &mut Vec<char>) {
     for (n, c) in list.iter().enumerate() {
         if *c == ' ' {
             list.remove(n);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)
pub fn _function(list: &mut Vec<char>) {
     for (n, c) in list.iter().enumerate() {
         if *c == ' ' {
             list.remove(n);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一解决方案是克隆列表

pub fn _function(list: &mut Vec<char>) {
     for (n, c) in list.clone().iter().enumerate() {
         if *c == ' ' {
             list.remove(n);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他解决方案可以在不克隆列表和使用更多内存的情况下使用这两个函数。

mutable immutability rust

2
推荐指数
1
解决办法
50
查看次数

标签 统计

immutability ×1

mutable ×1

rust ×1