2.7 KiB
title | localeTitle |
---|---|
Go Functions | الذهاب وظائف |
الذهاب وظائف
تأخذ الدالة صفرًا أو أكثر من أي معلمة من أي نوع ، وتقوم ببعض المنطق معها وقد ترجع واحدة أو أكثر من القيم. بناء جملة الدالة Golang هو:
func sum(parameter1 int64, parameter2 int64) int64 { return parameter1+parameter2 }
هنا ، اسم الوظيفة هو add
. فإنه يأخذ إلى المعلمات ، parameter1
و parameter2
من النوع int64
وإرجاع int64 آخر ، مجموع المعلمتين.
إرجاع
بعد return
التوصل، مخارج وظيفة دون تنفيذ المزيد من التعليمات البرمجية.
func sum(parameter1 int64, parameter2 int64) int64 { return parameter1+parameter2 // Unreachable code fmt.Printf("Don't print me") }
استدعاء وظيفة
سيتم تسمية الوظيفة المذكورة أعلاه على النحو التالي:
sum(4, 5)
قيمة هذا التعبير هي 9.
احذف نوع المعلمة
إذا كانت معلمتان متتاليتان أو أكثر من نفس النوع ، فيمكن ذكرها مرة واحدة فقط.
function foo(x, y, z int64, name string) { fmt.Printf("%d %d %d %s", x, y, z, name) }
هنا x
و y
و z
اكتب int64
، name
عبارة عن سلسلة.
إرجاع قيم متعددة
يمكن أن تقوم الدالة بإرجاع قيم الصفر أو أكثر. لإرجاع أي شيء ، احذف نوع الإرجاع:
function helloWorld() { fmt.Printf("Hello world!") }
لإرجاع قيمة واحدة حدد نوعه:
function getHelloWorld() string { return "Hello world!" }
لإرجاع أكثر من قيمة ، حدد أنواعها ، ملفوفة في ()
ومفصولة بفواصل:
function getHelloWorldAndBestLanguage() (string, string) { return "Hello world!", "Golang" }
لتلقي هذه القيم ، قم ببساطة بتعريف المتغيرات المفصولة بفواصل مثل:
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!") } `