Maison > développement back-end > Golang > Comment puis-je trouver efficacement la position d'un élément dans une Go Slice ?

Comment puis-je trouver efficacement la position d'un élément dans une Go Slice ?

Barbara Streisand
Libérer: 2024-12-23 16:19:10
original
301 Les gens l'ont consulté

How Can I Efficiently Find the Position of an Element in a 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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal