عندما يتعلق الأمر بهياكل البيانات القوية والمتعددة الاستخدامات، تكون الخرائط في مقدمة القائمة. تسمح لنا الخرائط، والمعروفة أيضًا باسم المصفوفات الترابطية أو القواميس أو خرائط التجزئة، بتخزين واسترجاع أزواج القيمة الرئيسية بطريقة فعالة وآمنة للذاكرة.
بشكل افتراضي، تكون الخرائط قابلة للتغيير وبالتالي يمكن تعديلها طوال عمر التطبيق. ومع ذلك، قد تصادف حالات تحتاج فيها إلى تحديد خريطة ثابتة أو غير قابلة للتغيير.
الخريطة غير القابلة للتغيير هي خريطة أساسية يمكن تعديلها بمجرد الإعلان عنها لضمان سلامة البيانات وتخزين المعلومات غير المتغيرة.
في هذا البرنامج التعليمي، سنتناول أساسيات العمل مع الخرائط، وفهم ما هي الخرائط الثابتة، ولماذا نحتاج إليها.
خرائط جولانج
قبل أن نتعمق في عملية تعريف الخريطة الثابتة، فلنبدأ بأساسيات الخرائط في Go.
تصريح
في Go، يمكننا الإعلان عن خريطة باستخدام الكلمة الأساسية 'map' متبوعة بأنواع المفاتيح والقيم المحاطة بين قوسين مربعين.
بناء الجملة هو كما يلي:
خريطة فار م [ نوع المفتاح ] نوع القيمة
مثال على النحو التالي:
التهيئة
قبل أن نتمكن من استخدام الخريطة، نحتاج إلى تهيئة الخريطة. في Go، يمكننا القيام بذلك باستخدام وظيفة 'make' كما يلي:
م := يصنع ( خريطة [ خيط ] كثافة العمليات )
إضافة العناصر والوصول إليها
بمجرد تهيئة الخريطة، يمكننا إضافة العناصر إلى الخريطة عن طريق تعيين قيمة لمفتاح محدد.
مثال على النحو التالي:
م [ 'ماي إس كيو إل' ] = 3306م [ 'بوستغريسكل' ] = 5094
للوصول إلى القيمة المرتبطة بالمفتاح، استخدم المفتاح الموجود بين الأقواس المربعة كما هو موضح في المثال التالي:
يجب أن يقوم هذا بإرجاع القيمة المرتبطة بالمفتاح المحدد.
خريطة جولانج الثابتة
كما ذكرنا، الخريطة الثابتة، والمعروفة أيضًا باسم الخريطة غير القابلة للتغيير، هي خريطة Go لا يمكن تعديلها بعد التهيئة.
في الخريطة غير القابلة للتغيير، بمجرد تعريفها، لا يمكننا إضافة أو تحديث أو حذف أي أزواج من القيمة الرئيسية.
تتضمن بعض الخصائص المشتركة للخريطة غير القابلة للتغيير في Go ما يلي:
-
- يتم تعريف أزواج القيمة الرئيسية في وقت الترجمة.
- لا يمكننا الإعلان عن خريطة ثابتة باستخدام الكلمة الأساسية 'const'.
- يتم تقييم الخريطة الثابتة وملؤها أثناء التجميع وليس في وقت التشغيل.
تتضمن بعض الحالات الشائعة التي قد تحتاج فيها إلى استخدام خريطة ثابتة ما يلي:
- عندما تحتاج إلى تخزين تكوين ثابت لا يتغير أثناء تنفيذ البرنامج.
- جداول البحث – إذا كانت لديك بيانات ثابتة تحتاج إلى البحث عنها بطريقة فعالة، فيمكن أن تساعد الخريطة غير القابلة للتغيير في تحسين الأداء.
إنشاء خريطة ثابتة في Golang
في Go، لا يمكننا تعريف الخريطة على أنها ثابتة باستخدام الكلمة الأساسية 'const'. وذلك لأن الخرائط هي أنواع مرجعية وبالتالي فإن محتوياتها قابلة للتغيير.
للإعلان عن خريطة ثابتة في Go، يمكننا استخدام دالة مجهولة لإنشاء كائن ثابت يشبه الخريطة.
مثال على النحو التالي:
الحزمة الرئيسيةيستورد 'إف إم تي'
الوظيفة الرئيسية ( ) {
readOnlyMap := GetReadOnlyMap ( )
القيمة، حسنًا := readOnlyMap [ 'ماي إس كيو إل' ]
لو نعم {
fmt.Printf ( 'قيمة المفتاح 1: %d \ن ' ، قيمة )
} آخر {
fmt.Println ( 'المفتاح غير موجود' )
}
}
func GetReadOnlyMap ( ) خريطة [ خيط ] كثافة العمليات {
readOnly := Map [ خيط ] كثافة العمليات {
'ماي إس كيو إل' : 3306 ,
'مونجو دي بي' : 27071 ,
'ريديس' : 6379 ,
}
يعود يقرأ فقط
}
في هذا المثال، تقوم الدالة 'GetReadOnlyMap' بإرجاع خريطة تحتوي على بيانات غير قابلة للتغيير. نظرًا لأنه استدعاء دالة مجهولة، فإن الخريطة غير قابلة للتغيير بشكل فعال مما يمنع التعديلات.
ومع ذلك، يمكننا قراءة قيم الخريطة من readOnlyMap دون وظيفة الكتابة على الخريطة.
خاتمة
في هذا البرنامج التعليمي، تعلمنا كل شيء عن الخرائط في Go. لقد تعلمنا كيفية عملها (المرجع)، وما هي الخرائط الثابتة، وكيفية استخدام دالة مجهولة للإعلان عن واحدة.