Enquanto fazia o exercício final do Tour of Go , decidi que precisava de uma fila de ( string
, int
) pares. Isso é bastante fácil:
type job struct {
url string
depth int
}
queue := make(chan job)
queue <- job{url, depth}
Mas isso me fez pensar: existem tipos de dados par / tupla integrados no Go? Há suporte para retornar vários valores de uma função, mas AFAICT, as múltiplas tuplas de valor produzidas não são cidadãos de primeira classe no sistema de tipos de Go. É esse o caso?
Quanto à parte "o que você tentou", a sintaxe óbvia (do ponto de vista de um programador Python)
queue := make(chan (string, int))
não funcionou.
Você poderia fazer algo assim se quisesse
No entanto, acho que o que você já tem é perfeitamente idiomático e a estrutura descreve seus dados perfeitamente, o que é uma grande vantagem sobre o uso de tuplas simples.
fonte