Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مقارنة الـ Maps

جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 29 من 68.

على عكس العديد من أنواع البيانات الأخرى في Go، تمتلك الخرائط (maps) قيداً فريداً: لا يمكن مقارنتها مباشرة باستخدام المعامل ==. الاستثناء الوحيد لهذه القاعدة هو عند مقارنة خريطة بـ 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")
}

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

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

عندما تحتاج إلى التحقق مما إذا كانت خريطتان (maps) تحتويان على نفس أزواج المفتاح والقيمة (key-value pairs)، يجب عليك كتابة دالة مخصصة (custom function) تمر عبر كلتا الخريطتين وتقارن كل عنصر على حدة. يمنحك هذا النهج تحكماً كاملاً في منطق المقارنة، مما يسمح لك بتحديد معنى "متساوي" (equal) بالضبط لحالة الاستخدام الخاصة بك.

جرّب بنفسك

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

quiz iconاختبر نفسك

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

جميع دروس Logic & Flow