أول برنامج — Hello World
Hello World
أول برنامج — Hello World
كل مبرمج يبدأ رحلته بـ “Hello World” — وهذا التقليد بدأ مع لغة C عام 1978. لكن في AzLearn، سنكتب “مرحباً بالعالم” 🐹
البرنامج الكامل
لنفهم كل سطر بالتفصيل:
السطر ١: package main
كل ملف Go ينتمي إلى حزمة (package). الحزمة هي طريقة Go لتنظيم الكود.
package mainتعني أن هذا الملف هو نقطة البداية للبرنامج- أي برنامج قابل للتنفيذ يجب أن يحتوي على حزمة
main - الحزم الأخرى (مثل
fmt) هي مكتبات نستوردها ونستخدمها
فكّر في الحزم مثل المجلدات — كل مجلد يحتوي على ملفات مرتبطة ببعضها.
السطر ٢: import "fmt"
كلمة import تستورد حزماً خارجية نحتاجها في برنامجنا.
fmt (اختصار format) هي أهم حزمة في Go — تحتوي على دوال للطباعة والتنسيق:
fmt.Println()— طباعة سطر (مع سطر جديد في النهاية)fmt.Printf()— طباعة منسّقة (مثل printf في C)fmt.Sprintf()— تنسيق نص وإرجاعه كـ string
لاستيراد عدة حزم، نستخدم الأقواس:
import (
"fmt"
"math"
"strings"
)
ملاحظة مهمة: Go لا يسمح باستيراد حزمة لا تُستخدم! إذا استوردت حزمة ولم تستخدمها، ستحصل على خطأ ترجمة. هذا تصميم مقصود للحفاظ على نظافة الكود.
السطر ٣: func main()
func تُعرّف دالة (function). الدالة main هي نقطة بداية البرنامج — أول شيء يتنفذ.
func main() {
// الكود هنا
}
- الأقواس
()بعد الاسم تحتوي على المعاملات (parameters) — فارغة هنا - القوس المعقوص
{يجب أن يكون في نفس سطر تعريف الدالة (إجباري في Go) - كل ما بين
{}هو جسم الدالة (function body)
السطر ٤: fmt.Println(...)
هذا هو الأمر الفعلي — استدعاء دالة Println من حزمة fmt.
Println= Print Line (طباعة سطر)- تطبع النص وتضيف سطراً جديداً
\nفي النهاية تلقائياً - يمكنها طباعة أي نوع من البيانات: نصوص، أرقام، قيم منطقية
التعليقات (Comments)
التعليقات نص يتجاهله المترجم (compiler) — نكتبها لشرح الكود:
// تعليق سطر واحد — Single line comment
/*
تعليق
متعدد
الأسطر — Multi-line comment
*/
في AzLearn نكتب التعليقات بشكل ثنائي اللغة لتسهيل الفهم.
رموز التنسيق في Printf
Printf تستخدم رموزاً خاصة (format verbs) لتنسيق البيانات:
| الرمز | الاستخدام |
|---|---|
%s | نص (string) |
%d | عدد صحيح (integer) |
%f | عدد عشري (float) |
%t | قيمة منطقية (boolean) |
%v | أي قيمة (value) — Go يختار التنسيق |
%T | نوع القيمة (type) |
%+v | قيمة مع أسماء الحقول |
\n | سطر جديد |
أخطاء شائعة للمبتدئين
١. نسيان package main:
// ❌ خطأ — لا يوجد package
import "fmt"
func main() { fmt.Println("خطأ") }
٢. القوس { في سطر منفصل:
// ❌ خطأ في Go — القوس يجب أن يكون في نفس السطر
func main()
{
fmt.Println("خطأ")
}
٣. استيراد حزمة غير مستخدمة:
import (
"fmt"
"math" // ❌ خطأ — مستوردة لكن غير مستخدمة
)
٤. عدم استخدام متغير مُعلَن:
x := 5 // ❌ خطأ إذا لم تستخدم x
Go صارمة في هذه الأمور — وهذا شيء جيد! يجبرك على كتابة كود نظيف.
ماذا بعد؟
أنت الآن تعرف بنية برنامج Go الأساسي. في الفصل القادم ننتقل للأساسيات: المتغيرات والأنواع والدوال.
أعد بناء البرنامج — Rebuild the Program
قرأت الكود. شغّلته. حللت التحدي. الآن — اكتبه من الذاكرة.
أظهر الحل — Show Solution
package main
import "fmt"
func main() {
fmt.Println("مرحبا بالعالم!")
}