إنشاء Hash Map
جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 28 من 66.
الآن بعد أن فهمت ما هي جداول التجزئة (hash maps)، دعنا نتعلم كيفية إنشاء واحد منها. لاستخدام جداول التجزئة في Rust، تحتاج أولاً إلى جلب النوع HashMap إلى النطاق باستخدام عبارة use في الجزء العلوي من ملفك:
use std::collections::HashMap;بمجرد استيراد HashMap، يمكنك إنشاء خريطة تجزئة (hash map) جديدة وفارغة باستخدام دالة HashMap::new():
let mut scores = HashMap::new();لاحظ أننا نعلن عن خريطة التجزئة (hash map) كـ mut لأننا سنرغب على الأرجح في إضافة بيانات إليها لاحقاً. عندما تنشئ خريطة تجزئة فارغة بهذه الطريقة، لا تعرف لغة Rust أنواع المفاتيح والقيم التي ستكون عليها حتى تبدأ في إدراج البيانات.
يمكنك أيضًا تحديد الأنواع بشكل صريح إذا كنت تفضل ذلك:
let mut scores: HashMap<String, i32> = HashMap::new();يؤدي هذا إلى إنشاء خريطة تجزئة (hash map) ستقوم بتخزين مفاتيح من نوع String (مثل أسماء الطلاب) وقيم من نوع i32 (مثل درجات الاختبار). خريطة التجزئة الفارغة جاهزة الآن لتخزين أزواج المفاتيح والقيم الخاصة بك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
ورقة مرجعية
لاستخدام خرائط التجزئة (hash maps) في Rust، قم باستيراد HashMap من المكتبة القياسية:
use std::collections::HashMap;أنشئ خريطة تجزئة فارغة مع تحديد النوع ضمنياً:
let mut scores = HashMap::new();أنشئ خريطة تجزئة فارغة مع توضيح النوع صراحةً:
let mut scores: HashMap<String, i32> = HashMap::new();يجب التصريح عن خرائط التجزئة باستخدام mut إذا كنت تخطط لتعديلها. عند استخدام تحديد النوع الضمني، يستنتج Rust أنواع المفاتيح والقيم عند إدراج البيانات.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1تدفق التحكم المتقدم
تعبير 'match'مطابقة قيم متعددةمطابقة النطاقاتتعبير 'if let'الحلقات التكرارية كتعبيراتمراجعة - محلل أوامر بسيط4تجميع البيانات باستخدام Structs
ما هو الـ Struct؟نظرة عامة على الـ Structsالوصول إلى حقول الـ Structالـ Structs القابلة للتعديلالـ Structs كمعاملات للدوالالـ Tuple Structsمراجعة - إنشاء Book Struct7معالجة الأخطاء باستخدام 'Result'
ما هو 'Result'؟استخدام 'match' مع 'Result'is_ok() و is_err()اختصارات: unwrap و expectعامل علامة الاستفهام '?'تحويل السلاسل النصية إلى أرقامملخص - دالة القسمة الآمنة10الـ Closures والدوال المجهولة
ما هو الـ Closure؟تعريف Closure بسيطالـ Closures مع المعاملاتالتقاط البيئة المحيطةملخص - Closure الجامع البسيط2مقدمة في الـ Vectors
ما هو الـ Vector؟إنشاء Vectorإضافة عناصر باستخدام pushالوصول إلى عناصر الـ Vectorالتكرار عبر الـ Vectorالتكرار القابل للتعديل (Mutable Iteration)إزالة العناصرمراجعة - متتبع نقاط بسيط5أزواج (المفتاح والقيمة) مع Hash Maps
ما هو Hash Map؟إنشاء Hash Mapإدراج أزواج (المفتاح والقيمة)الوصول إلى القيمالتكرار عبر Hash Mapتحديث قيمةإزالة زوجملخص - عداد الكلمات6التعامل مع غياب القيم باستخدام 'Option'
ما هو الـ 'Option'؟استخدام 'match' مع 'Option''is_some()' و 'is_none()'فك تغليف الـ 'Option'الدالة 'expect'توفير قيمة افتراضية: 'unwrap_or'مراجعة - البحث عن عنصر9شرائح الـ String والمزيد
String مقابل &strإنشاء شرائح الـ Stringالشرائح كمعاملات للدوالشرائح أخرىمراجعة - إيجاد الكلمة الأولى