62 lines
1.4 KiB
Markdown
62 lines
1.4 KiB
Markdown
|
---
|
||
|
title: Variadic Functions
|
||
|
localeTitle: Funções Variadic
|
||
|
---
|
||
|
## Funções Variadic
|
||
|
|
||
|
Funções Variadic são funções que podem ser chamadas com qualquer número de argumentos à direita.
|
||
|
|
||
|
Esse é um recurso útil quando estamos trabalhando em aplicativos da web.
|
||
|
|
||
|
Às vezes, não temos quantos elementos precisaremos passar para o mecanismo de criação de templates em HTML.
|
||
|
|
||
|
Aqui estão as noções básicas sobre como funcionam as funções varidicas:
|
||
|
|
||
|
```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...)
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Primeiro, em printFruits nós definimos o número de argumentos com \[… string\].
|
||
|
|
||
|
Isso informa ao Go que essa função aceita qualquer número de argumentos de string.
|
||
|
|
||
|
As duas primeiras chamadas para printFruits mostram que a função imprimirá cada string, mesmo se passarmos um número diferente de argumentos.
|
||
|
|
||
|
```text
|
||
|
apple
|
||
|
bannana
|
||
|
...
|
||
|
papaya
|
||
|
coconut
|
||
|
pear
|
||
|
...
|
||
|
```
|
||
|
|
||
|
Isso também funcionará para fatias.
|
||
|
|
||
|
Para usar uma função vardiac com uma fatia, adicionamos os pontos de treinamento à chamada.
|
||
|
|
||
|
```go
|
||
|
printFruits(berries...)
|
||
|
```
|
||
|
|
||
|
```text
|
||
|
blueberry
|
||
|
strawberry
|
||
|
raspberry
|
||
|
|
||
|
```
|