أنواع بيانات Go
فيما يلي جميع الأنواع المدمجة في لغة Go للرجوع إليها، لمزيد من التفاصيل يمكنك زيارة دليل المرجع - الأنواع.
النوع المنطقي
النوع المنطقي له قيمة صحيحة وقيمة خاطئة فقط.
| النوع | الوصف |
|---|---|
bool | true للقيمة الصحيحة، false للقيمة الخاطئة |
TIP
في Go، العدد 0 لا يمثل القيمة الخاطئة، والأعداد غير الصفرية لا تمثل القيمة الصحيحة، أي أن الأرقام لا يمكنها أن تحل محل القيم المنطقية في الحكم المنطقي، فالنوعان مختلفان تماماً.
الأعداد الصحيحة
في Go، تم تخصيص أنواع مختلفة للأعداد الصحيحة بأحجام مختلفة، وتنقسم أساساً إلى أعداد صحيحة بدون إشارة وأعداد صحيحة بإشارة.
| الرقم | النوع والوصف |
|---|---|
uint8 | عدد صحيح 8 بت بدون إشارة |
uint16 | عدد صحيح 16 بت بدون إشارة |
uint32 | عدد صحيح 32 بت بدون إشارة |
uint64 | عدد صحيح 64 بت بدون إشارة |
int8 | عدد صحيح 8 بت بإشارة |
int16 | عدد صحيح 16 بت بإشارة |
int32 | عدد صحيح 32 بت بإشارة |
int64 | عدد صحيح 64 بت بإشارة |
uint | عدد صحيح بدون إشارة بحجم 32 بت على الأقل |
int | عدد صحيح بحجم 32 بت على الأقل |
uintptr | مكافئ لعدد صحيح 64 بت بدون إشارة، لكنه مخصص لعمليات المؤشرات، ويُستخدم لتخزين عناوين المؤشرات. |
أعداد الفاصلة العائمة
أعداد الفاصلة العائمة IEEE-754، وتنقسم أساساً إلى أعداد فاصلة عائمة أحادية الدقة وأعداد فاصلة عائمة مزدوجة الدقة.
| النوع | النوع والوصف |
|---|---|
float32 | عدد فاصلة عائمة 32 بت IEEE-754 |
float64 | عدد فاصلة عائمة 64 بت IEEE-754 |
الأعداد المركبة
| النوع | الوصف |
|---|---|
complex128 | 64 بت للجزء الحقيقي والجزء التخيلي |
complex64 | 32 بت للجزء الحقيقي والجزء التخيلي |
نوع الحرف
سلاسل Go متوافقة تماماً مع UTF-8
| النوع | الوصف |
|---|---|
byte | مكافئ لـ uint8 يمكنه التعبير عن أحرف ANSCII |
rune | مكافئ لـ int32 يمكنه التعبير عن أحرف Unicode |
string | السلسلة النصية هي سلسلة من البايتات، يمكن تحويلها إلى نوع []byte أي شريحة بايتات |
الأنواع المُشتقة
| النوع | المثال |
|---|---|
| المصفوفة | [5]int، مصفوفة أعداد صحيحة بطول 5 |
| الشريحة | []float64، شريحة أعداد فاصلة عائمة 64 بت |
| جدول التعيين | map[string]int، جدول تعيين بمفتاح من نوع سلسلة نصية وقيمة من نوع عدد صحيح |
| الهيكل | type Gopher struct{}، هيكل Gopher |
| المؤشر | *int، مؤشر لعدد صحيح. |
| الدالة | type f func()، نوع دالة بدون معاملات وبدون قيمة مُرجعة |
| الواجهة | type Gopher interface{}، واجهة Gopher |
| القناة | chan int، قناة أعداد صحيحة |
القيمة الصفرية
في الوثائق الرسمية تُسمى القيمة الصفرية zero value، القيمة الصفرية ليست مجرد الرقم صفر بالمعنى الحرفي، بل هي القيمة الفارغة أو القيمة الافتراضية لنوع ما بشكل أدق.
| النوع | القيمة الصفرية |
|---|---|
| الأنواع الرقمية | 0 |
| النوع المنطقي | false |
| نوع السلسلة النصية | "" |
| المصفوفة | مجموعة من القيم الصفرية للنوع المقابل بطول ثابت |
| الهيكل | هيكل بحقول داخلية جميعها قيم صفرية |
| الشريحة، جدول التعيين، الدالة، الواجهة، القناة، المؤشر | nil |
nil
nil مشابه لـ none أو null في اللغات الأخرى، لكنه ليس مكافئاً لهما. nil هو مجرد القيمة الصفرية لبعض الأنواع المرجعية، ولا ينتمي لأي نوع، من الكود المصدري يمكن ملاحظة أن nil هو مجرد متغير:
var nil Typeكما أن عبارة مثل nil == nil لا يمكن ترجمتها.
