English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يقدم لغة Go وظيفة خاصة تسمى وظيفة مجهولة المصدر. وظيفة مجهولة المصدر هي وظيفة لا تحتوي على أي اسم. هذه الوظيفة مفيدة جدًا عند إنشاء وظائف داخلة. يمكن للوظيفة مجهولة المصدر أن تشكل قفصًا مغلقًا في لغة Go. تُسمى وظيفة مجهولة المصدر أيضًاوظيفة كتابية.
القواعد النحوية:
func(parameter_list) return_type { // كود // إذا تم تقديم return_type، استخدم جملة return // إذا لم يتم تقديم return_type، لا // استخدام جملة return return }()
package main import "fmt" func main() { // وظيفة مجهولة المصدر func() { fmt.Println("Welcome! to oldtoolbag.com") }() }
الإخراج:
مرحبًا! بكم في oldtoolbag.com
ملاحظة هامة:
في لغة Go، يمكنك تخصيص وظيفة مجهولة المصدر إلى متغير. عند تخصيص وظيفة إلى متغير، يكون نوع المتغير هو نوع الوظيفة، يمكنك إجراء مكالمة للمتغير كما تفعل مع الوظيفة، مثل المثال التالي.
package main import "fmt" func main() { // تخصيص وظيفة مجهولة المصدر إلى متغير value := func() { fmt.Println("Welcome! to oldtoolbag.com") } value() }
الإخراج:
مرحبًا! بكم في oldtoolbag.com
يمكنك أيضًا إرسال معامل إلى وظيفة مجهولة المصدر.
package main import "fmt" func main() { // إرسال معامل إلى وظيفة مجهولة المصدر func(ele string) { fmt.Println(ele) }("w3codebox") }
الإخراج:
w3codebox
يمكنك أيضًا إرسال وظيفة مجهولة المصدر كمعامل إلى وظيفة أخرى.
package main import "fmt" // إرسال وظيفة مجهولة المصدر كمعامل func GFG(i func(p, q string) string) { fmt.Println(i("Geeks", "for")) } func main() { value := func(p, q string) string { return p + q + "Geeks" } GFG(value) }
الإخراج:
w3codebox
يمكنك أيضًا العودة إلى وظيفة مجهولة المصدر من وظيفة أخرى.
package main import "fmt" // عودة وظيفة مجهولة المصدر func GFG() func(i, j string) string { myf := func(i, j string) string { return i + j + "w3codebox" } return myf } func main() { value := GFG() fmt.Println(value("Welcome ", "to")) }
الإخراج:
مرحبًا بكم في w3codebox