0Pricing
Go Academy · درس

عبارات if وتعبيرات التهيئة

الشروط مع عبارات التهيئة الاختيارية

عبارات if وتعبيرات التهيئة درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.

if في Go

تقيّم عبارة if في Go تعبيرًا منطقيًا — لا حاجة إلى الأقواس، لكن الأقواس المعقوفة إلزامية:

if x > 0 {
    // positive
}

else وelse if

اربط الشروط باستخدام else if، وتعامل مع الحالة البديلة باستخدام else:

func classify(n int) string {
    if n < 0 {
        return "negative"
    } else if n == 0 {
        return "zero"
    } else {
        return "positive"
    }
}

if مع عبارة التهيئة

تسمح Go بعبارة تهيئة اختيارية قبل الشرط — وهي مثالية لحصر نطاق المتغيرات المؤقتة:

if err := doSomething(); err != nil {
    // err is only in scope here
    return err
}

تحديد النطاق باستخدام عبارة التهيئة

يقتصر نطاق المتغيرات المعلنة في عبارة التهيئة على كتلة if/else. وهذا يمنع تسرّب المتغيرات إلى الدالة المحيطة:

func process(id int) error {
    if val, err := lookup(id); err != nil {
        return err
    } else {
        use(val) // val is in scope here
    }
    return nil
}

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

يجب أن يكون شرط Go من النوع bool — لا يوجد تحويل ضمني:

  • صالح: if count != 0
  • غير صالح: if count — يؤدي إلى خطأ في الترجمة في Go، بخلاف C وJavaScript
  • يمنع ذلك الأخطاء الشائعة المتعلقة بانحراف الموضع وإلغاء الإشارة إلى nil

التحقق من nil

تحقّق من مؤشرات nil والشرائح والخرائط والأخطاء باستخدام == nil:

func greet(name *string) string {
    if name == nil {
        return "Hello, stranger"
    }
    return "Hello, " + *name
}

نمط الإرجاع المبكر

تفضّل Go بشدة عمليات الإرجاع المبكرة لتقليل التداخل، بحيث يبقى «المسار السعيد» عند الهامش الأيسر:

func save(user User) error {
    if user.Name == "" {
        return errors.New("name required")
    }
    if user.Age < 0 {
        return errors.New("invalid age")
    }
    return db.Insert(user)
}

دمج الشروط

استخدم && و|| لدمج الشروط. ينطبق التقييم بالتوقف القصير — فلا يُقيَّم الجانب الأيمن إلا عند الحاجة:

if user != nil && user.IsActive() {
    sendEmail(user)
}

if مقابل switch

عندما تكون لديكم شروط كثيرة على المتغير نفسه، يكون switch عادةً أوضح. استخدموا if عندما:

  • تكون الشروط تعبيرات منطقية مستقلة
  • تحتاجون إلى عبارات تهيئة مع التحقق من الأخطاء
  • يكون لديكم فرع واحد أو فرعان فقط

تجنّب هرم if-else

تؤثر كتل if-else المتداخلة بعمق سلبًا في سهولة القراءة. ويمكن معالجة ذلك من خلال:

  • عمليات الإرجاع المبكرة
  • عبارات switch للحالات المتعددة
  • تقسيم المنطق إلى دوال أصغر
  • عبارات الحراسة في بداية الدالة

تحقق سريع

ما الخاصية الفريدة لعبارة if في Go مقارنةً بـ C؟

مراجعة: عبارات if

عبارة if في Go قوية وواضحة:

  • لا توجد أقواس حول الشرط — الأقواس المعقوفة مطلوبة
  • تحصر عبارة التهيئة نطاق المتغيرات في كتلة if/else
  • يجب أن يكون الشرط من النوع bool تحديدًا
  • فضّلوا الإرجاع المبكر على التداخل العميق
  • استخدموا &&/|| مع التقييم بالتوقف القصير

التالي: حلقة for المرنة في Go.

الأسئلة الشائعة

هل درس «عبارات if وتعبيرات التهيئة» مجاني؟

نعم — نص درس «عبارات if وتعبيرات التهيئة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.

ماذا ستتعلم في «عبارات if وتعبيرات التهيئة»؟

الشروط مع عبارات التهيئة الاختيارية تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟

لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «عبارات if وتعبيرات التهيئة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟

نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عبارات if وتعبيرات التهيئة
  2. حلقة for: جميع الأنماط
  3. عبارات switch في Go
  4. ‏break وcontinue والتسميات
← العودة إلى Go Academy