--- title: Go Functions localeTitle: الذهاب وظائف --- ## الذهاب وظائف تأخذ الدالة صفرًا أو أكثر من أي معلمة من أي نوع ، وتقوم ببعض المنطق معها وقد ترجع واحدة أو أكثر من القيم. بناء جملة الدالة Golang هو: ```go func sum(parameter1 int64, parameter2 int64) int64 { return parameter1+parameter2 } ``` هنا ، اسم الوظيفة هو `add` . فإنه يأخذ إلى المعلمات ، `parameter1` و `parameter2` من النوع `int64` وإرجاع int64 آخر ، مجموع المعلمتين. ### إرجاع بعد `return` التوصل، مخارج وظيفة دون تنفيذ المزيد من التعليمات البرمجية. ```go func sum(parameter1 int64, parameter2 int64) int64 { return parameter1+parameter2 // Unreachable code fmt.Printf("Don't print me") } ``` ### استدعاء وظيفة سيتم تسمية الوظيفة المذكورة أعلاه على النحو التالي: ```go sum(4, 5) ``` قيمة هذا التعبير هي 9. ### احذف نوع المعلمة إذا كانت معلمتان متتاليتان أو أكثر من نفس النوع ، فيمكن ذكرها مرة واحدة فقط. ```go function foo(x, y, z int64, name string) { fmt.Printf("%d %d %d %s", x, y, z, name) } ``` هنا `x` و `y` و `z` اكتب `int64` ، `name` عبارة عن سلسلة. ### إرجاع قيم متعددة يمكن أن تقوم الدالة بإرجاع قيم الصفر أو أكثر. لإرجاع أي شيء ، احذف نوع الإرجاع: ```go function helloWorld() { fmt.Printf("Hello world!") } ``` لإرجاع قيمة واحدة حدد نوعه: ```go function getHelloWorld() string { return "Hello world!" } ``` لإرجاع أكثر من قيمة ، حدد أنواعها ، ملفوفة في `()` ومفصولة بفواصل: ```go function getHelloWorldAndBestLanguage() (string, string) { return "Hello world!", "Golang" } ``` لتلقي هذه القيم ، قم ببساطة بتعريف المتغيرات المفصولة بفواصل مثل: ```go helloWorld, bestLanguage := getHelloWorldAndBestLanguage() // helloWorld == "Hello world!" // bestLanguage == "Golang" ``` ### عوائد عارية يمكنك تسمية أنواع الإرجاع بحيث لا تحتاج إلى تمرير متغير إلى بيان الإرجاع: `func duplicate(s string) (first, second string) { first = s last = s return } func main() { fmt.Println(split("Hello world!")) // ("Hello world!", "Hello world!") } ` #### معلومات اكثر: https://tour.golang.org/basics/4