المعاملات (Operators) هي رموز خاصة تؤدي عمليات معينة على المتغيرات والقيم. تدعم Go مجموعة كاملة من المعاملات يمكن تصنيفها إلى عدة أنواع رئيسية. في هذا الدرس سنتعرف على أهمها مع أمثلة عملية.

المعاملات الحسابية

تستخدم لإجراء العمليات الرياضية الأساسية: + للجمع، – للطرح، * للضرب، / للقسمة، و % لإيجاد باقي القسمة. تجدر الإشارة إلى أن قسمة عددين صحيحين في Go تعطي ناتجًا صحيحًا (يُهمل الجزء العشري).

a := 10
b := 3
sum := a + b      // 13
diff := a - b     // 7
prod := a * b     // 30
div := a / b      // 3
mod := a % b      // 1

معاملات الإسناد

تستخدم لإسناد قيمة إلى متغير. أبسطها هو = ، ولكن Go تدعم أيضًا معاملات إسناد مركبة مثل += و -= و *= و /= و %= التي تختصر العمليات الحسابية مع الإسناد.

x := 5
x += 3   // x = 8
x -= 2   // x = 6
x *= 4   // x = 24

معاملات المقارنة

تقارن قيمتين وتعطي نتيجة منطقية (true أو false). تشمل: == للمساواة، != لعدم المساواة، > أكبر من، < أصغر من، >= أكبر أو يساوي، <= أصغر أو يساوي.

a := 10
b := 20
fmt.Println(a == b)  // false
fmt.Println(a < b)   // true
fmt.Println(a >= 5)  // true

المعاملات المنطقية

تجمع بين قيم منطقية لإنتاج نتيجة منطقية: && (و) تعطي true إذا كانت الطرفان true، || (أو) تعطي true إذا كان أحد الطرفين على الأقل true، و ! (نفي) تعكس القيمة المنطقية.

age := 25
hasID := true
canEnter := age >= 18 && hasID  // true
isMinor := !(age >= 18)          // false

معاملا الزيادة والنقصان

تدعم Go ++ لزيادة قيمة المتغير بمقدار واحد، و — للنقصان. على عكس بعض اللغات، هذه العمليات في Go جمل وليست تعابير، أي لا يمكن استخدامها داخل تعبير آخر.

count := 0
count++  // count = 1
count--  // count = 0