61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Variadic Functions
 | |
| localeTitle: وظائف متنوعة
 | |
| ---
 | |
| ## وظائف متنوعة
 | |
| 
 | |
| الدوال Variadic هي دالات يمكن استدعاؤها مع أي عدد من الوسيطات اللاحقة.
 | |
| 
 | |
| هذه ميزة مفيدة عندما نعمل على تطبيقات الويب.
 | |
| 
 | |
| في بعض الأحيان ، لا نحتاج إلى عدد العناصر التي سنحتاج إلى تمريرها إلى محرك HTML الخاص بالتخطيط.
 | |
| 
 | |
| فيما يلي الأساسيات حول كيفية عمل الدوال varidic:
 | |
| 
 | |
| ```go
 | |
| package main
 | |
| import "fmt"
 | |
| 
 | |
| func printFruits(fruits ...string) {
 | |
|     for _, fruit := range fruits{
 | |
|         fmt.Println(fruit)
 | |
|     }
 | |
| }
 | |
| 
 | |
| func main() {
 | |
|    printFruits("apple", "bannana")
 | |
|    printFruits("papaya", "coconut", "pear", "pineapple")
 | |
|    berries := []string{"blueberry", "strawberry", "raspberry"}
 | |
|    printFruits(berries...)
 | |
| }
 | |
| ``` 
 | |
| 
 | |
| أولاً ، في printFruits قمنا بتعريف عدد الوسيطات باستخدام \[… string\].
 | |
| 
 | |
| يخبر هذا Go أن هذه الدالة تقبل أي عدد من وسائط السلسلة.
 | |
| 
 | |
| تظهر أول مكالمتين للطباعة printFruits أن الدالة ستقوم بطباعة كل سلسلة ، حتى إذا كنا نجتاز عددًا مختلفًا من الوسيطات.
 | |
| 
 | |
| ```text
 | |
| apple
 | |
| bannana
 | |
| ...
 | |
| papaya
 | |
| coconut
 | |
| pear
 | |
| ...
 | |
| ``` 
 | |
| 
 | |
| هذا سوف يعمل أيضا لشرائح.
 | |
| 
 | |
| لاستخدام وظيفة vardiac مع شريحة ، نضيف نقاط التدريب إلى المكالمة.
 | |
| 
 | |
| ```go
 | |
| printFruits(berries...)
 | |
| ``` 
 | |
| 
 | |
| ```text
 | |
| blueberry
 | |
| strawberry
 | |
| raspberry
 | |
| ``` |