Go Academy · درس

الثوابت وiota

تعريف الثوابت واستخدام iota للتعدادات

الدرس 3 من 413 خطوة

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

ما الثوابت؟

يخزّن الثابت قيمة لا تتغير أثناء التشغيل.

  • يُصرّح عنه باستخدام const
  • يجب أن يكون قابلًا للحساب وقت الترجمة
  • قد يكون محدد النوع أو غير محدد النوع
  • يُسمح بالقيم الحرفية النصية والمنطقية والرقمية وقيم rune

الثوابت محددة النوع مقابل غير محددة النوع

تتمتع الثوابت غير محددة النوع بدقة أعلى ومرونة أكبر:

  • const Pi = 3.14159 — عدد عشري غير محدد النوع، يتكيف مع السياق
  • const Pi float64 = 3.14159 — عدد من النوع float64
  • يمكن استخدام الثوابت الصحيحة غير محددة النوع مع أي نوع صحيح

تعبيرات الثوابت

يمكن حساب الثوابت من ثوابت أخرى وقت الترجمة:

const (
    KB = 1024
    MB = 1024 * KB
    GB = 1024 * MB
)

iota: قيم متزايدة تلقائيًا

إن iota عدّاد مضمن يُعاد ضبطه إلى 0 في كل كتلة const، ويزداد بمقدار 1 لكل ثابت في الكتلة.

const (
    Sunday = iota  // 0
    Monday          // 1
    Tuesday         // 2
    Wednesday       // 3
)

iota مع التعبيرات

اجمع بين iota والتعبيرات لإنشاء تعدادات قوية:

const (
    _  = iota             // skip 0
    KB = 1 << (10 * iota) // 1024
    MB                     // 1048576
    GB                     // 1073741824
)

الثوابت النصية

الثوابت النصية هي قيم نصية غير قابلة للتغيير معروفة وقت الترجمة:

const (
    AppName    = "GoApp"
    AppVersion = "1.0.0"
    Greeting   = "Hello, " + AppName
)

الثوابت المنطقية

إن true وfalse ثابتان منطقيان غير محددي النوع ومصرّح عنهما مسبقًا في Go. يمكنك تعريف ثوابت منطقية محددة النوع لاستخدامها كعلامات للميزات:

const (
    EnableMetrics = true
    DebugMode     = false
)

الثوابت مقابل المتغيرات

الفروقات الرئيسية:

  • الثوابت غير قابلة للتغيير — يؤدي الإسناد إليها بعد التصريح عنها إلى خطأ في الترجمة
  • لا يمكن للثوابت استخدام تعبيرات غير ثابتة (مثل استدعاءات الدوال)
  • الثوابت أكثر كفاءة — فقد يضمّنها المترجم مباشرةً
  • استخدم الثوابت للأرقام السحرية لتحسين قابلية القراءة

أنواع التعداد باستخدام iota

أنشئ تعدادات آمنة النوع بدمج نوع معرّف مع iota:

type Direction int

const (
    North Direction = iota
    East
    South
    West
)

Stringer لتحسين قابلية قراءة التعداد

طبّق الواجهة Stringer على نوع التعداد لديك لكي يطبع أسماءً سهلة القراءة بدلًا من الأعداد الصحيحة الخام. ويمكن لأداة stringer توليد هذه الشيفرة تلقائيًا.

نمط قناع البتات باستخدام iota

يؤدي استخدام iota مع إزاحات البتات إلى إنشاء مجموعات الأعلام:

type Permission uint

const (
    Read    Permission = 1 << iota // 1
    Write                          // 2
    Execute                        // 4
)

func main() {
    access := Read | Write // 3
    _ = access
}

تحقق سريع

ما القيمة التي يبدأ بها iota في كل كتلة const جديدة؟

مراجعة: الثوابت وiota

أصبحت تفهم الآن ثوابت Go:

  • يصرّح const عن قيم ثابتة وقت الترجمة وغير قابلة للتغيير
  • الثوابت غير محددة النوع مرنة وعالية الدقة
  • يزداد iota تلقائيًا داخل كتلة const، بدءًا من 0
  • اجمع بين iota والتعبيرات لأحجام الملفات وأعلام البتات والتعدادات
  • أنشئ تعدادات آمنة النوع باستخدام نوع معرّف + iota

التالي: التحويلات الصريحة للأنواع والأسماء المستعارة للأنواع.

البدء مجانًا

تعلم Go مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
51
الدروس
203

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

هل درس «الثوابت وiota» مجاني؟

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

ماذا ستتعلم في «الثوابت وiota»؟

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

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

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

كم من الوقت يستغرق درس «الثوابت وiota»؟

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

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

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

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

  1. تعريف المتغيرات في Go
  2. الأنواع المضمّنة في Go
  3. الثوابت وiota
  4. تحويلات الأنواع في Go
← العودة إلى Go Academy