Réponse de Go à la construction "if x in" de Python
En programmation, il est souvent nécessaire de vérifier l'existence d'un élément dans un collection. En Python, cela peut être accompli de manière concise en utilisant la construction « if x in ». Cependant, Go fournit-il un mécanisme similaire ?
Implémentation de la fonctionnalité
Go, malheureusement, ne dispose pas d'une construction intégrée "if x in". Cependant, cette fonctionnalité peut être implémentée de deux manières :
1. Utilisation de Slices.Contains (Go 1.18 et supérieur)
Depuis Go 1.18, le langage fournit la fonction slices.Contains, qui peut être utilisée pour vérifier si un élément donné existe dans une tranche :
package main func main() { arr := []int{1, 2, 3} fmt.Println(slices.Contains(arr, 2)) // True }
2. Utilisation d'une fonction personnalisée (versions Go antérieures à 1.18)
Avant Go 1.18, vous deviez définir votre propre fonction pour effectuer cette vérification. Voici un exemple :
package main func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false } func main() { arr := []string{"a", "b", "c"} fmt.Println(stringInSlice("b", arr)) // True }
Optimisation avec Maps
Si vous effectuez fréquemment des vérifications d'adhésion, il est recommandé d'utiliser une carte au lieu d'un tableau ou d'une tranche. Les cartes fournissent des recherches en temps constant, améliorant considérablement les performances.
package main func main() { visitedURL := map[string]bool{ "http://www.google.com": true, "https://paypal.com": true, } if visitedURL[thisSite] { fmt.Println("Already been here.") } }
Bien que Go n'ait pas d'équivalent exact à la construction "if x in" de Python, les approches susmentionnées fournissent des solutions flexibles pour vérifier l'existence d'éléments dans divers scénarios. .
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!