Bir HashMap
varsayalım ve bir girdiye değiştirilebilen bir başvuru almak istiyorum veya bu girdi yoksa yeni bir nesneye değiştirilebilir bir başvuru istiyorum, bunu nasıl yapabilirim?Varsayılan değiştirilebilen değer: HashMap
fn foo() {
let mut map: HashMap<&str, Vec<&str>> = HashMap::new();
let mut ref = map.get_mut("whatever").unwrap_or(&mut Vec::<&str>::new());
// Modify ref.
}
Ama Vec
yaşam boyu yeterince uzun olmadığı için bu işe yaramazsa: Böyle unwrap_or()
, bir şey kullanarak denedim. Vec
'un foo()
ile aynı ömre sahip olmasını istediğimi Rust'a söylemenin bir yolu var mı? Bu bariz bir çözüm yoktur demek ama daha iyi bir yolu olması gerektiğini hissediyorum:
fn foo() {
let mut map: HashMap<&str, Vec<&str>> = HashMap::new();
let mut dummy: Vec<&str> = Vec::new();
let mut ref = map.get_mut("whatever").unwrap_or(&dummy);
// Modify ref.
}
Herhangi bir noktada haritaya 'dummy 'eklemeden bunu yapmak ister misiniz? Sadece merak ediyorum. – bluss
Tam olarak, benim özel kullanım durumumda sadece bir tercih olmasına rağmen. Yine de, 'dummy' eklemek istemeyeceğiniz durumlar hayal edebiliyorum. – Timmmm