Avatar ·

كيفية إجراء البحث والإدراج بكفاءة في 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`. هذا يبدو مكلفًا.