Menu
CoddyTech

مقارنة الـ Maps

جزء من قسم المنطق وتدفق التنفيذ في رحلة GO على Coddy. الدرس 29 من 68.

على عكس العديد من أنواع البيانات الأخرى في Go، للخرائط قيد فريد: لا يمكن مقارنتها مباشرةً باستخدام عامل التشغيل ==. والاستثناء الوحيد لهذه القاعدة هو عند مقارنة خريطة بـ nil.

هذا يعني أن شيفرة مثل هذه لن تُترجم:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// سيتسبب هذا في خطأ أثناء الترجمة البرمجية!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

ومع ذلك، يمكنك مقارنة خريطة بأمان مع nil:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

عندما تحتاج إلى التحقق مما إذا كانت خريطتان تحتويان على أزواج المفاتيح والقيم نفسها، عليك كتابة دالة مخصصة تكرّر عبر كلتا الخريطتين وتقارن كل عنصر على حدة. يمنحك هذا النهج تحكمًا كاملًا في منطق المقارنة، ما يتيح لك تحديد معنى «المساواة» بدقة وفقًا لحالة الاستخدام الخاصة بك.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Go عبر الإنترنت