Go Academy · درس

الأنواع المضمّنة في Go

‏int وfloat64 وstring وbool والقيم الصفرية الخاصة بها

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

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

نظرة عامة على نظام أنواع Go

تحتوي Go على مجموعة غنية من الأنواع المضمنة المنظمة ضمن فئات:

  • منطقي: bool
  • صحيح: int، int8، int16، int32، int64 ونظائرها غير الموقعة
  • فاصلة عائمة: float32، float64
  • سلسلة نصية: string
  • مركب: complex64، complex128

أنواع الأعداد الصحيحة

توفر Go أنواعًا للأعداد الصحيحة تعتمد على المنصة وأخرى ذات أحجام ثابتة:

  • int / uint — الحجم يعتمد على المنصة (32 أو 64 بت)
  • int8…int64 — عروض بت ثابتة
  • byte — اسم مستعار لـ uint8
  • rune — اسم مستعار لـ int32، ويمثل نقطة ترميز Unicode

استخدم int للأعداد الصحيحة العامة ما لم تكن بحاجة إلى عرض محدد.

float64 وfloat32

تتبع أنواع الفاصلة العائمة المعيار IEEE 754:

package main

func main() {
    var f32 float32 = 3.14
    var f64 float64 = 3.141592653589793
    ratio := f64 / 2.0  // float64 inferred
    _ = f32
    _ = ratio
}

نوع string

السلاسل النصية في Go هي تسلسلات بايت غير قابلة للتغيير بترميز UTF-8:

  • بين علامتي اقتباس مزدوجتين: "Hello" — تدعم متتاليات الهروب
  • بين علامتي اقتباس خلفيتين: `raw string` — لا تعالج محارف الهروب، ويمكن أن تمتد عبر عدة أسطر
  • تعيد len(s) عدد البايتات لا عدد الأحرف
  • كرّر على الأحرف باستخدام range للحصول على قيم rune

نوع bool

يحتوي النوع bool على قيمتين: true وfalse.

  • قيمته الصفرية هي false
  • العوامل المنطقية: &&، ||، !
  • تعيد عوامل المقارنة قيمة منطقية: ==، !=، <، >
  • لا تحوّل Go الأعداد الصحيحة ضمنيًا إلى قيم منطقية (بخلاف C)

ملخص القيم الصفرية

لكل نوع قيمة صفرية محددة بوضوح:

  • int وجميع الأنواع الرقمية → 0
  • float64 → 0.0
  • string → ""
  • bool → false
  • *T والشرائح والخرائط والقنوات والدوال → nil

تجعل القيم الصفرية شيفرة Go آمنة — فلا تقرأ أبدًا ذاكرة غير صالحة.

القيم الحرفية الرقمية

تدعم Go عدة صيغ للقيم الحرفية الرقمية:

package main

func main() {
    dec  := 1_000_000   // digit separators
    hex  := 0xFF
    oct  := 0o777
    bin  := 0b1010
    sci  := 1.5e3       // 1500.0
    _ = dec; _ = hex; _ = oct; _ = bin; _ = sci
}

أحجام الأنواع ونطاقاتها

تساعد معرفة أحجام الأنواع على منع أخطاء تجاوز السعة:

  • int8: من -128 إلى 127
  • uint8: من 0 إلى 255
  • int16: من -32768 إلى 32767
  • int32: نحو ±2.1 مليار
  • int64: نحو ±9.2 كوينتيليون

استخدم math.MaxInt64 والثوابت المماثلة من الحزمة math للحصول على الحدود الدقيقة.

rune وbyte

إن rune وbyte اسما نوع مستعاران يحملان دلالة معنوية:

  • byte = uint8 — يُستخدم للبيانات الثنائية الخام أو بيانات ASCII
  • rune = int32 — يُستخدم لنقاط ترميز Unicode

عند التكرار على سلسلة نصية باستخدام range، تمنحك Go قيم rune — وهذا مثالي للتعامل مع الأحرف متعددة البايتات بترميز UTF-8، مثل الرموز التعبيرية.

اختيار النوع المناسب

إرشادات لاختيار الأنواع الرقمية:

  • استخدم int افتراضيًا للعدادات والفهارس
  • استخدم float64 للحسابات العامة باستخدام الفاصلة العائمة
  • استخدم int64 / uint64 للمعرّفات والطوابع الزمنية والعدادات الكبيرة
  • استخدم int32 فقط عند التعامل مع واجهات برمجة التطبيقات التي تتطلبه
  • تجنب float32 ما لم تكن تعمل على الرسومات أو بيانات محدودة المساحة

تحقق سريع

ما القيمة الصفرية لمتغير من النوع string في Go؟

مراجعة: الأنواع المضمنة

توفر لك الأنواع المضمنة في Go أساسًا متينًا:

  • عائلة الأعداد الصحيحة: int، int64، byte، rune
  • الفاصلة العائمة: يُفضّل استخدام float64
  • string هي بايتات UTF-8 غير قابلة للتغيير
  • bool مع true/false
  • لكل نوع قيمة صفرية — لا مفاجآت

التالي: الثوابت ومُعدِّد iota القوي.

مهمة تدريبية

جرّب: صرّح عن متغير rune يحتوي على الحرف 'A'، ومتغير byte يحتوي على القيمة 65. اطبع كليهما — ومن المفترض أن ينتجا القيمة الرقمية نفسها. ثم جرّب التكرار على سلسلة نصية قصيرة من الرموز التعبيرية لرؤية قيم rune عمليًا.

البدء مجانًا

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

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

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

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

هل درس «الأنواع المضمّنة في Go» مجاني؟

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

ماذا ستتعلم في «الأنواع المضمّنة في Go»؟

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

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

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

كم من الوقت يستغرق درس «الأنواع المضمّنة في Go»؟

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

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

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

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

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