| 
             Funções variádicas
podem ser chamads com qualquer número de argumentos.
Por exemplo,   | 
          |
            ![]()  
          package main  | 
        |
            
          import "fmt"  | 
        |
| 
             Aqui está uma função que aceitará um número arbitrário de
inteiros   | 
          
            
          func sum(nums ...int) { fmt.Print(nums, " ") total := 0  | 
        
| 
             Dentro da função, o tipo   | 
          
            
          
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}
           | 
        
            
          func main() {  | 
        |
| 
             Funções variádicas pode ser chamada de forma usual com argumentos individuais.  | 
          
            
          
    sum(1, 2)
    sum(1, 2, 3)
           | 
        
| 
             Se uma slice com multiplos argumentos estiver
disponível, é possível passá-la como parâmetro
para uma função variádica usando   | 
          
            
          
    nums := []int{1, 2, 3, 4}
    sum(nums...)
}
           | 
        
            
          $ go run variadic-functions.go [1 2] 3 [1 2 3] 6 [1 2 3 4] 10  | 
        |
| 
             Outro aspecto chave de funções em Go é a capacidade para formar fechamentos (closures), que serão apresentados em seguida.  | 
          
Próximo exemplo: Closures.