كيفية إجراء البحث والإدراج بكفاءة في HashMap في Rust؟
مرحبًا أيها الزملاء! أنا مبتدئ في Rust وواجهت مشكلة أثناء العمل مع `HashMap`. أحتاج إلى تنفيذ قاموس ترددات: قراءة الأسطر من ملف نصي، حساب عدد مرات ظهور كل كلمة، وعرض أفضل 10 كلمات. في لغات أخرى (مثل Python)، كنت ببساطة أفعل `dict[word] = dict.get(word, 0) + 1`. لكن في Rust الأمر أكثر تعقيدًا.
إليك الكود الخاص بي الذي يعمل، لكنه يبدو غير فعال بشكل رهيب:
```rust
use std::collections::HashMap;
fn main() {
let text = "hello world hello rust rust rust";
let mut map: HashMap<&str, u32> = HashMap::new();
for word in text.split_whitespace() {
if map.contains_key(word) {
let count = map.get(word).unwrap();
map.insert(word, count + 1);
} else {
map.insert(word, 1);
}
}
println!("{:?}", map);
}
```
المشاكل:
1. أقوم بعمليتي وصول إلى `HashMap` لكل كلمة: أولاً أتحقق من `contains_key`، ثم `get`، ثم `insert`. هذا يبدو مكلفًا.