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
|
|||
|
|
|||
|
```
|