الهياكل
Structs
مفهوم
~22 دقيقة
الهياكل — Structs
الهيكل (Struct) هو نوع بيانات مركّب يجمع عدة حقول (fields) في وحدة واحدة. فكّر فيه كـ “class” مبسّطة — Go لا تحتوي على classes بالمعنى التقليدي.
تعريف هيكل
main.go
Output:
الطرق (Methods)
الطرق هي دوال مرتبطة بنوع معين. تُعرّف بإضافة مستقبِل (receiver) قبل اسم الدالة:
main.go
Output:
متى نستخدم pointer receiver (*)؟
- عندما تريد تعديل الهيكل
- عندما يكون الهيكل كبيراً (لتجنب النسخ)
- القاعدة: إذا طريقة واحدة تحتاج pointer، اجعل كل الطرق pointer
المُنشئات (Constructors)
Go ليس فيها constructors رسمية، لكن الاصطلاح هو كتابة دالة New...:
main.go
Output:
التضمين (Embedding)
بدلاً من الوراثة (inheritance)، Go تستخدم التضمين (embedding) — تضع هيكلاً داخل هيكل آخر:
main.go
Output:
Tags والتحويل لـ JSON
Tags معلومات إضافية على الحقول — الاستخدام الأشهر هو JSON:
main.go
Output:
تحدي — Challenge
عرّف هيكل Student بحقلي Name و Score، وأضف طريقة Display