Maison >développement back-end >Golang >Comment puis-je trouver efficacement la position d'un élément dans une Go Slice ?
Détermination de la position d'un élément dans une tranche
Déterminer la position d'un élément dans une tranche n'est pas aussi simple qu'il y paraît. Cela est dû à l'absence de fonction de bibliothèque générique dans Go à cet effet.
Pour résoudre ce problème, des fonctions personnalisées comme celle ci-dessous peuvent être créées :
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
Cette fonction parcourt la tranche. en utilisant range et vérifie si la valeur de l'élément correspond à la valeur cible. Si une correspondance est trouvée, l'index est renvoyé.
Malheureusement, cette approche n'est pas idéale pour les tranches arbitraires. Le système de types de Go ne fournit pas de mécanisme simple permettant aux fonctions d'opérer sur des tranches de différents types.
Pour les tranches d'octets en particulier, la fonction bytes.IndexByte peut être utilisée. Cette fonction renvoie l'index de la première occurrence d'une valeur d'octet dans une tranche d'octets.
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!