1 الهيكل الأساسي لبرنامج Go

يبدأ برنامج Go بتعريف حزمة، تليه استيراد الحزم المطلوبة، ثم تعريف المتغيرات على مستوى الحزمة والثوابت، وأخيرًا الدوال الموجودة ضمن الحزمة. باعتبار "مرحبًا بالعالم" كمثال، التالي هو الهيكل الأساسي النموذجي لبرنامج Go:

package main // تعريف الحزمة الرئيسية، الذي يشير إلى برنامج قابل للتنفيذ بشكل مستقل

import "fmt" // استيراد حزمة fmt التي تحتوي على وظائف الإدخال والإخراج

// الدالة الرئيسية، نقطة الدخول للبرنامج
func main() {
    fmt.Println("مرحبًا بالعالم!") // عرض مرحبًا بالعالم على المحطة
}

مفهوم وغرض الحزم

في لغة Go، تعد الحزمة مجموعة من ملفات الشفرة المصدرية في Go وتعمل كآلية لإعادة استخدام الشفرة على مستوى عالٍ. كل ملف في Go ينتمي إلى حزمة، ويجب أن يكون اسم الحزمة هو نفس اسم الدليل الذي يتواجد فيه.

قواعد تسمية ملفات شفرة المصدر

تتبع تسمية ملفات شفرة Go عادةً الأحرف الصغيرة ولا تحتوي على مسافات أو رموز خاصة، مثل hello_world.go. اسم ملف الشفرة المصدرية لا يحتاج أن يكون متسقًا مع اسم الحزمة، ولكن عبارات تعريف الحزمة في جميع الملفات داخل نفس الحزمة يجب أن تحتوي على أسماء حزمة متسقة.

استخدام التعليقات في البرنامج

في لغة Go، تأتي التعليقات في صورتين: تعليقات مفردة تبدأ بـ // وتعليقات متعددة الأسطر تبدأ بـ /* وتنتهي بـ */. يتم تجاهل محتوى التعليقات من قبل المترجم.

// هذا تعليق مفرد

/*
هذا تعليق متعدد الأسطر
الذي يمتد عبر عدة
أسطر.
*/

2 الدالة الرئيسية ونقطة دخول البرنامج

في برنامج Go، تم تصميم الدالة main بشكل خاص كنقطة دخول البرنامج. يقوم تشغيل Go تلقائيًا باستدعاء الدالة main داخل الحزمة الرئيسية لبدء تنفيذ البرنامج.

package main

import "fmt"

func main() {
    fmt.Println("مرحبًا بالعالم!")
}

تأخذ دالة main لا تأخذ أي arguments ولا تقوم بإرجاع أي قيم. بعد تنفيذ دالة main، يتم إيقاف التشغيل تلقائيًا للبرنامج. إذا كان هناك حاجة لإرجاع رمز حالة عند خروج البرنامج، يجب استخدام دالة os.Exit.

3 بناء وتشغيل البرنامج

استخدام أمر go build

تقوم تشغيل أمر go build بتجميع ملف شفرة المصدر وإنشاء ملف تنفيذي. في المحطة الطرفية، انتقل إلى الدليل الذي يتواجد فيه ملف الشفرة المصدرية، ثم أدخل الأمر التالي:

go build hello_world.go

بعد التنفيذ الناجح، سترى ملف تنفيذي بالاسم hello_world (أو hello_world.exe في نظام Windows) في الدليل الحالي.

استخدام أمر go run

يقوم أمر go run بتجميع وتشغيل برنامج Go، مما يجعله مريحًا للاختبار السريع والتطوير. لتشغيل برنامج "مرحبًا بالعالم"، يمكنك إدخال:

go run hello_world.go

بعد تنفيذ هذا الأمر، يجب أن ترى مخرج "مرحبًا بالعالم!" مباشرة في المحطة الطرفية.

4 الإخراج من البرنامج

في برنامج Go، يمكن استخدام دالة Println المقدمة من حزمة fmt لإخراج المعلومات إلى المحطة. التالي هو مثال للشفرة يقوم بإخراج "مرحبًا بالعالم!" إلى المحطة:

package main

import "fmt"

func main() {
    fmt.Println("مرحبًا بالعالم!") // إخراج إلى المحطة
}

بعد تنفيذ البرنامج، يمكن عرض الإخراج مباشرة في محطة الطرفية. بالإضافة إلى ذلك، يمكن تحقيق متطلبات إخراج أكثر تعقيدًا باستخدام حزمة log أو عن طريق التلاعب المباشر بتيار الإخراج القياسي os.Stdout.

import "os"
os.Stdout.WriteString("مرحبًا بالعالم!\n") // التلاعب المباشر بتيار الإخراج القياسي
import "log"
log.Println("مرحبًا بالعالم!") // استخدام حزمة السجل للإخراج، تشمل معلومات التاريخ والوقت

هذه الأساليب الأساسية للإخراج هي وسائل مهمة للتفاعل مع المستخدمين وتُستخدم عادةً لتصحيح أخطاء البرامج لطباعة المعلومات الحرجة.