Lors de l' exercice final du Tour of Go , j'ai décidé que j'avais besoin d'une file d'attente de ( string
, int
) paires. C'est assez simple:
type job struct {
url string
depth int
}
queue := make(chan job)
queue <- job{url, depth}
Mais cela m'a fait réfléchir: existe-t-il des types de données paire / tuple intégrés dans Go? Il existe un support pour renvoyer plusieurs valeurs à partir d'une fonction, mais AFAICT, les tuples de valeurs multiples produits ne sont pas des citoyens de première classe dans le système de type de Go. Est-ce le cas?
Quant à la partie "qu'as-tu essayé", la syntaxe évidente (du POV d'un programmeur Python)
queue := make(chan (string, int))
n'a pas fonctionné.
Tu pourrais faire quelque chose comme ça si tu voulais
Cependant, je pense que ce que vous avez déjà est parfaitement idiomatique et la structure décrit parfaitement vos données, ce qui est un gros avantage par rapport à l'utilisation de tuples simples.
la source