hashmap中存储的数据是btreeset类型,在取出来btreeset插入数据时报错,这个报错的原因是什么?怎么修复这个报错?
let mut split_sort = HashMap::new();
init(&mut split_sort, start_char);
let train_data = File::open(FILE_PATH)?;
let reader = BufReader::new(train_data);
let line_iter = reader.lines().map(|l| l.unwrap());
line_iter.for_each(|line| {
for c in start_char.chars() {
if line.starts_with(c) {
split_sort.get(&c).unwrap().insert(&line);
}
}
});
报错信息如下:
error[E0596]: cannot borrow data in a `&` reference as mutable
--> src\main.rs:40:17
|
40 | split_sort.get(&c).unwrap().insert(&line);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
1
共 4 条评论, 1 页
评论区
写评论原来如此,你的示例太妙了
--
👇
Wybxc:
HashMap::get
拿到的是不可变引用,可以用get_mut
代替不过这种表套表的结构最好用
entry
方法,例如:HashMap::get
拿到的是不可变引用,可以用get_mut
代替不过这种表套表的结构最好用
entry
方法,例如:问题是这行代码
split_sort.get(&c).unwrap().insert(&line);
报错cannot borrow data in a & reference as mutable
,不知道为什么会有这个报错,怎么改能消除这个报错?--
👇
苦瓜小仔: 不知道怎么改代码,我可以理解。但不晓得正确提问,我不理解 :)
要想别人节省你的解决问题的时间,首先节省别人理解你问题的时间。
不知道怎么改代码,我可以理解。但不晓得正确提问,我不理解 :)
要想别人节省你的解决问题的时间,首先节省别人理解你问题的时间。