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

`switch` مع التعبيرات

جزء من قسم الأساسيات في رحلة GO على Coddy. الدرس 40 من 109.

لنتعلّم عن تعبيرات switch في Go، التي تتيح لنا تقييم قيمة مباشرةً في عبارة switch.

أولًا، لنرَ كيفية استخدام تعليمة switch مع تعبير للتحقق مما إذا كان العدد موجبًا أم سالبًا أم صفرًا:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

بعد تنفيذ هذا الرمز، سيعرض البرنامج على الشاشة:

Negative number

لاحظ أننا نستخدم switch { من دون قيمة بعدها. وهذا يعني أن Go ستقيّم تعبير كل حالة على أنه شرط منطقي. وبما أن num تساوي -5، فإن الحالة الثانية num < 0 تقيَّم إلى true، ولذلك تتم طباعة "Negative number".

يمكننا أيضًا تهيئة متغير مباشرةً في عبارة switch. لنرَ كيف يعمل ذلك:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

بعد تنفيذ هذا الكود، نحصل على النتيجة نفسها:

Negative number

في هذا المثال، صرّحنا عن num وتهيئته مباشرةً في عبارة switch. تفصل الفاصلة المنقوطة بين التهيئة وتعبير switch (وهو فارغ هنا). يجعل هذا الرمز البرمجي أكثر اختصارًا مع الحفاظ على الوظيفة نفسها.

challenge icon

التحدي

مبتدئ
في هذا التحدي، ستتدرّب على استخدام تعبير switch بسيط في Go. تحتاج إلى إكمال الكود لتحديد وصف يوم بناءً على اسمه باستخدام عبارة switch.

تم تعريف متغير dayName مسبقًا بالقيمة "Wednesday". مهمتك هي استخدام تعبير switch لتعيين المتغير description إلى:
- "Start of the week" لـ Monday
- "Midweek" لـ Wednesday
- "Almost weekend" لـ Friday
- "Weekend" لـ Saturday أو Sunday
- "Regular day" لأي يوم آخر

جرّب بنفسك

package main

import "fmt"

func main() {
	// اسم اليوم معرّف مسبقاً
	dayName := "Wednesday"
	
	// متغير لتخزين الوصف
	var description string
	
	// TODO: اكتب عبارة switch تعيّن الوصف بناءً على dayName
	// بالنسبة لـ Monday: "Start of the week"
	// بالنسبة لـ Wednesday: "Midweek"
	// بالنسبة لـ Friday: "Almost weekend"
	// بالنسبة لـ Saturday أو Sunday: "Weekend"
	// لأي يوم آخر: "Regular day"
	
	
	// اطبع النتيجة
	fmt.Printf("%s is %s\n", dayName, description)
}
quiz iconاختبر نفسك

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

جميع دروس الأساسيات

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