作者:飞隔热条二 | 来源:互联网 | 2023-05-24 10:12
这段代码:
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::HashMap;
fn main() {
let mut vars = HashMap::::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),
| ^^^
小智..
8
VacantEntry
没有实现任何命名的方法set
,但是有一个名为的方法insert
:
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::HashMap;
fn main() {
let mut vars = HashMap::::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);
}
(游乐场)
1> 小智..:
VacantEntry
没有实现任何命名的方法set
,但是有一个名为的方法insert
:
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::HashMap;
fn main() {
let mut vars = HashMap::::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);
}
(游乐场)