دالة التهيئة init
في لغة البرمجة Go هي جزء من نظام التهيئة في اللغة. تُستخدم هذه الدالة لتنفيذ الكود قبل تنفيذ الدالة main
في برنامج Go. يُطلق على الدالة init
اسم “دالة التهيئة” لأنها تُستخدم لتهيئة الحالة الابتدائية للبرنامج.
عند كتابة برنامج Go، يُمكنك إنشاء ملف يحتوي على دالة init
، وستُقدم هذه الدالة بشكل تلقائي عند بدء تشغيل البرنامج. يُمكن أن يحتوي البرنامج على عدة ملفات تحتوي على دوال init
، وتُطلق جميعها بشكل تلقائي.
فيما يلي مثال على كيفية استخدام دالة init
:
gopackage main
import "fmt"
func init() {
fmt.Println("تم تشغيل دالة التهيئة init")
}
func main() {
fmt.Println("تم تشغيل الدالة main")
}
في هذا المثال، عند تنفيذ البرنامج، سيتم طباعة “تم تشغيل دالة التهيئة init” قبل “تم تشغيل الدالة main”. يمكنك استخدام دالة init
لأغراض مثل تهيئة المتغيرات العامة أو تنفيذ أكواد التهيئة الأخرى التي يجب أن تحدث قبل بدء تنفيذ البرنامج بأكمله.
هذا الأمر يكون مفيدًا عند العمل مع مكتبات أو حزم كبيرة حيث تحتاج إلى تهيئة بعض الأشياء قبل استخدامها في الدالة main
الرئيسية.
المزيد من المعلومات
بالطبع، دعونا نعمق أكثر في دالة التهيئة init
في لغة Go.
-
تفعيل تلقائي:
دالةinit
تُشغل تلقائيًا وتلتزم بالترتيب التي يتم بها توجيه الحزم. يعني ذلك أن دالةinit
في حزمة معينة ستُشغل قبل دوالinit
في حزم أخرى. -
تعدد الدوال
init
:
يمكنك إنشاء العديد من دوالinit
في نفس الحزمة، وستُشغل جميعها بالترتيب.gopackage main import "fmt" func init() { fmt.Println("تم تشغيل init 1") } func init() { fmt.Println("تم تشغيل init 2") } func main() { fmt.Println("تم تشغيل الدالة main") }
في هذا المثال، ستُشغل كل من
init 1
وinit 2
تلقائيًا. -
استخدامات مفيدة:
- تهيئة المتغيرات العامة: يمكن استخدام دالة
init
لتهيئة متغيرات تحتوي على قيم ابتدائية. - تحميل مراجع خارجية: يُمكن استخدام
init
لتحميل مكتبات خارجية أو ملفات تكوين قبل تنفيذ البرنامج الرئيسي. - إعداد قواعد البيانات: في بعض الحالات، يُمكن استخدام
init
لإعداد اتصالات قاعدة البيانات.
- تهيئة المتغيرات العامة: يمكن استخدام دالة
-
المتغير
_
:
إذا كنت تحتاج إلى تشغيل حزمة ولكن لا تحتاج إلى تنفيذ كودinit
فيها، يمكنك استخدام المتغير_
لتجاهله.goimport _ "حزمة/دوال/init/لا/تحتاج"
-
استخدام
init
في الحزم الفرعية:
عند استخدام حزم فرعية (subpackages)، يمكن وضع دوالinit
في هذه الحزم أيضًا.gopackage main import ( "fmt" "mypackage/subpackage" ) func init() { fmt.Println("تم تشغيل init في الحزمة الرئيسية") } func main() { subpackage.ExampleFunction() }
gopackage subpackage import "fmt" func init() { fmt.Println("تم تشغيل init في الحزمة الفرعية") } func ExampleFunction() { fmt.Println("تم تشغيل دالة في الحزمة الفرعية") }
في هذا المثال، سيتم تشغيل كل من دوال
init
في الحزمة الرئيسية والحزمة الفرعية.
باختصار، دالة init
في لغة Go توفر وسيلة فعّالة لتهيئة البرنامج وتحميل المراجع اللازمة قبل بدء تنفيذ الكود الرئيسي. يُفضل استخدامها بحذر وتجنب الاعتماد عليها بشكل كبير، حيث قد تزيد من تعقيد الفهم وصيانة البرنامج.