English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الوظائف التي يتم استدعاؤها بكمية مختلفة من المعلمات تسمى وظائف المعلمات المتغيرة. بمعنى آخر، يسمح للمستخدم بمرور صفر أو أكثر من المعلمات في وظيفة متغيرةfmt.Printfهذا مثال على وظيفة المعلمات المتغيرة، حيث تحتاج في البداية إلى معامل ثابت، ثم يمكنها قبول أي عدد من المعلمات
ملاحظة هامة:
في إعلان وظيفة المعلمات المتغيرة، يتم وضع نقط السطر قبل نوع آخر آخر من المعلمات، أي (...)。هذا يدل على أن هذه الوظيفة يمكنها استدعاء أي عدد من هذا النوع من المعلمات
النحو:
function function_name(para1, para2...type)type{ // code... }
دالة function …نوعمنسلوكه يشبه قطعة (slice). على سبيل المثال، لنفترض أن لدينا اسم دالة هو add(b…int)int، الآن هو نوع []int للمعلمات.
يمكنك أيضًا نقل قطع موجودة إلى دالة المعلمات المتغيرة. لفعل ذلك، سنقوم بنقل جزء من المجموعة الكاملة إلى الدالة، مثل ما يليمثال 2كما هو موضح.
عند عدم نقل أي معلمات إلى دالة المعلمات المتغيرة، يتم تعيين القيمة الداخلية إلى nil.
تُستخدم دوال المعلمات المتغيرة غالبًا لتنسيق الأنواع.
يمكنك أيضًا نقل عدة قطع إلى دالة المعلمات المتغيرة.
لا يمكنك استخدام المعلمات المتغيرة كقيمة عودة، ولكن يمكنك عودتها كقطعة.
مثال على عرض صفر معلمات وعدة معلمات:
package main import ( "fmt" "strings" ) //دالة متغيرة المعلمات لربط الأنواع func joinstr(element ...string) string { return strings.Join(element, "-") } func main() { //عدد معلمات صفر fmt.Println(joinstr()) //عدة معلمات fmt.Println(joinstr("GEEK", "GFG")) fmt.Println(joinstr("Geeks", "for", "Geeks")) fmt.Println(joinstr("G", "E", "E", "k", "S")) }
الإخراج:
GEEK-GFG Geeks-for-Geeks G-E-E-k-S
مثال 2، ربط الأنواع باستخدام دالة المعلمات المتغيرة، نقل قطعة إلى دالة متغيرة المعلمات:
package main import( "fmt" "strings" ) //دالة متغيرة المعلمات لربط الأنواع func joinstr(element...string)string{ return strings.Join(element, "-") } func main() { //نقل قطعة إلى دالة متغيرة المعلمات element:= []string{"geeks", "FOR", "geeks"} fmt.Println(joinstr(element...)) }
الإخراج:
geeks-FOR-geeks
عند استخدام دالة المعلمات المتغيرة:
عندما تريد نقل قطعة إلى دالة، يتم استخدام دالة المعلمات المتغيرة.
عند عدم معرفة عدد المعلمات، يتم استخدام دالة المعلمات المتغيرة.
عند استخدام دالة المعلمات المتغيرة في البرنامج، يمكن أن تزيد من قابلة القراءة للبرنامج.