الدوال
Functions
مفهوم
~20 دقيقة
الدوال — Functions
الدوال هي اللبنة الأساسية لتنظيم الكود في Go. كل برنامج Go يبدأ بدالة main، لكنك ستكتب عشرات الدوال في أي مشروع حقيقي.
تعريف دالة بسيطة
func greet() {
fmt.Println("مرحباً!")
}
دالة مع معاملات (Parameters)
func greet(name string) {
fmt.Println("مرحباً يا", name)
}
إذا كانت المعاملات من نفس النوع، يمكنك اختصار الكتابة:
func add(a, b int) int { // a و b كلاهما int
return a + b
}
دالة مع قيمة مُرجعة (Return Value)
main.go
Output:
الإرجاع المتعدد (Multiple Returns)
هذه من أقوى ميزات Go — الدالة يمكنها إرجاع عدة قيم. يُستخدم كثيراً لإرجاع نتيجة + خطأ:
main.go
Output:
ملاحظة:
_(underscore) تُستخدم لتجاهل قيمة مُرجعة لا تحتاجها. Go لا يسمح بمتغيرات غير مستخدمة!
الإرجاع المُسمّى (Named Returns)
يمكنك تسمية القيم المُرجعة — وعند ذلك return بدون قيم يُرجع القيم الحالية:
main.go
Output:
الدوال كقيم (Functions as Values)
في Go، الدوال هي قيم من الدرجة الأولى — يمكنك تخزينها في متغيرات وتمريرها كمعاملات:
main.go
Output:
الدوال المتغيرة (Variadic Functions)
دوال تقبل عدداً غير محدد من المعاملات باستخدام ...:
main.go
Output:
defer — التأجيل
defer يؤجل تنفيذ دالة حتى انتهاء الدالة الحالية. يُستخدم كثيراً لإغلاق الملفات واتصالات قواعد البيانات:
main.go
Output:
تحدي — Challenge
أنشئ دالة greet ترجع نص ودالة sum تقبل 3 أعداد