تدعم لغة Go مجموعة واسعة من أنواع البيانات المُدمجة (Built-in Types) التي تُستخدم لتخزين أنواع مختلفة من القيم. فهم هذه الأنواع هو الأساس لكتابة برامج فعّالة وآمنة. في هذا الدرس سنستعرض أهم الأنواع الأساسية في Go.

الأنواع الرقمية الصحيحة

تقدم Go عدة أنواع للأعداد الصحيحة بأحجام مختلفة: int8 و int16 و int32 و int64 للأرقام التي تقبل القيم السالبة والموجبة، و uint8 و uint16 و uint32 و uint64 للأرقام الموجبة فقط. النوع int هو النوع الافتراضي وحجمه يعتمد على نظام التشغيل (32 أو 64 بت).

var a int = 100
var b int64 = 9223372036854775807
var c uint = 50

الأنواع العشرية

للتعامل مع الأرقام التي تحتوي على فاصلة عشرية، توفر Go نوعين: float32 للدقة المفردة و float64 للدقة المضاعفة. ينصح باستخدام float64 افتراضيًا لأنها أكثر دقة وهي النوع الافتراضي في معظم العمليات.

var price float64 = 199.99
var pi float32 = 3.14159

السلاسل النصية (Strings)

السلاسل النصية في Go من نوع string وتُكتب بين علامتي اقتباس مزدوجة. تدعم Go السلاسل بترميز UTF-8 افتراضيًا، مما يجعلها مثالية للتعامل مع النصوص العربية وغيرها من اللغات. السلاسل في Go غير قابلة للتعديل (Immutable)، أي لا يمكن تغيير محتوى السلسلة بعد إنشائها.

var greeting string = "مرحبًا بالعالم"
message := "أهلاً بكم في درس Go"

القيم المنطقية (Boolean)

النوع bool يأخذ قيمتين فقط: true أو false. يستخدم بكثرة في جمل الشروط والحلقات.

var isActive bool = true
isReady := false

التحويل بين الأنواع

لا تقوم Go بالتحويل التلقائي بين الأنواع لتجنب الأخطاء غير المقصودة. يجب تحويل الأنواع يدويًا باستخدام صيغة T(value)، حيث T هو النوع المراد التحويل إليه.

var i int = 10
var f float64 = float64(i)
var s string = string(rune(i))