62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Variadic Functions
 | ||
| localeTitle: 变量函数
 | ||
| ---
 | ||
| ## 变量函数
 | ||
| 
 | ||
| 可变参数函数是可以使用任意数量的尾随参数调用的函数。
 | ||
| 
 | ||
| 当我们处理网络应用时,这是一个有用的功能。
 | ||
| 
 | ||
| 有时我们不需要将多少元素传递给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 
 | ||
| 
 | ||
| ``` |