Um método em Go permite que seja possível declará-lo de forma a aceitar um número variável
de parâmetros. Isso é feito com auxílio do operador (...) que deve ser usado como prefixo
de um parâmetro para informar que um array será usado.
Sintaxe
func (val meu_tipo) nome_metodo( nome_parametro ...tipo_dado) {
//corpo função
}
Caso seja necessário adicionar outros parâmetros à função, o parâmetro contendo o operador (...)
deve ser o último.
Sintaxe
func (val meu_tipo) nome_metodo( nome_parametro1 tipo_dado1, (...) , nome_parametroN ...tipo_dadoN) {
//corpo função
}
No exemplo abaixo, vamos utilizar o comando de repetição for e a função range para
percorrer a lista parâmetros demonstrando o que foi discutido nesta parte do tutorial:
Exemplo 4
package main
import "fmt"
type meu_tipo struct {
valor string
id int
}
func (val meu_tipo) Show(desc string, nums ...int) {
fmt.Println(desc);
for _,i := range nums{
fmt.Print(i)
}
}
func main() {
teste := meu_tipo{"Teste", 999}
teste.Show("teste",1,2,3,4,5,6,7)
}
Saída
1234567