VacantEntry在名为set的范围内未实现任何方法 [英] VacantEntry does not implement any method in scope named set
本文介绍了VacantEntry在名为set的范围内未实现任何方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此代码段:
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::HashMap;
fn main() {
let mut vars = HashMap::<i32, f64>::new();
let key = 10;
let val = match vars.entry(key) {
Vacant(entry) => entry.set(0.0),
Occupied(entry) => entry.into_mut(),
};
*val += 3.4;
println!("{}", val);
}
给出此错误:
error[E0599]: no method named `set` found for type `std::collections::hash_map::VacantEntry<'_, i32, f64>` in the current scope
--> src/main.rs:8:32
|
8 | Vacant(entry) => entry.set(0.0),
| ^^^
推荐答案
insert
:
VacantEntry
doesn't implement any method named set
, but there is a method named insert
:
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::HashMap;
fn main() {
let mut vars = HashMap::<i32, f64>::new();
let key = 10;
// vars.insert(key, 25.0);
let val = match vars.entry(key) {
Vacant(entry) => entry.insert(0.0),
Occupied(entry) => entry.into_mut(),
};
*val += 3.4;
println!("{}", val);
}
(游乐场 )
这篇关于VacantEntry在名为set的范围内未实现任何方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文