Vérification de l'appartenance à une valeur dans des listes dans Go
En Python, le mot-clé in vérifie facilement si une valeur existe dans une liste. Une fonctionnalité similaire dans Go nécessite une approche légèrement différente.
Une option consiste à utiliser une carte avec des clés de chaîne et des valeurs entières. Cependant, cette approche nécessite de spécifier une valeur entière inutilisée, ce qui peut s'avérer gênant.
Utiliser une carte avec des valeurs booléennes
Une solution plus élégante consiste à créer une carte avec une chaîne clés et valeurs booléennes. L'absence de clé dans la carte renvoie la valeur booléenne par défaut de false.
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
Optimiser avec un Slice
Si vous avez un grand nombre de valeurs valides , pensez à utiliser une tranche pour initialiser les valeurs de la carte à true :
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
Initialisation plus courte en utilisant Constantes
Alternativement, vous pouvez créer une constante non typée ou booléenne et optimiser davantage l'initialisation :
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
En adoptant l'une de ces techniques, vous pouvez vérifier efficacement si une valeur est contenu dans une liste dans Go, offrant des fonctionnalités similaires au mot-clé in de Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!