Trouver la position d'un élément dans une tranche
Déterminer la position d'un élément dans une tranche dans Go peut être une tâche utile. Cependant, contrairement à d'autres langages, il n'existe pas de fonction de bibliothèque générique pour effectuer cette opération directement.
Solution personnalisée
Une approche consiste à créer une fonction personnalisée spécifiquement pour les types de tranches :
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 les éléments de la tranche, comparant chaque élément à la valeur recherchée. Si une correspondance est trouvée, la position de l'élément est renvoyée.
Considérations
Bien que votre fonction personnalisée fonctionne, il est important de noter qu'elle ne fonctionnera que sur int tranches. Si vous devez rechercher une valeur spécifique dans une tranche d'un type différent, vous devrez créer une nouvelle fonction spécifiquement pour ce type.
Tranches d'octets
Pour les tranches d'octets, il existe une fonction intégrée appelée bytes.IndexByte qui peut être utilisée pour trouver la position d'une valeur d'octet dans le slice :
package bytes func IndexByte(s []byte, b byte) int
Conclusion
La détermination de la position d'un élément dans une tranche en Go nécessite soit une fonction personnalisée, soit l'utilisation de bytes.IndexByte pour les tranches d'octets . Bien qu'il n'existe pas de fonction de bibliothèque générique pour effectuer cette tâche pour tous les types de tranches, l'approche personnalisée offre un moyen pratique de rechercher des éléments dans des types de tranches spécifiques.
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!