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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 00:25:09648parcourir

How Can I Find the Position of an Element in a Go Slice?

Recherche des positions des éléments dans les tranches

La détermination de la position d'un élément dans une tranche dans Go n'est pas prise en charge par une fonction de bibliothèque générique. La conception du langage Go ne dispose pas d'une approche simple pour définir une fonction applicable à tout type de tranche.

Implémentation personnalisée

Vous pouvez définir votre propre fonction, comme indiqué dans l'exemple de code. vous avez fourni, pour réaliser cette tâche :

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 comparant chaque élément à la valeur spécifiée. Si la valeur est trouvée, sa position est renvoyée ; sinon, -1 est renvoyé.

Bien que cette fonction soit fonctionnelle, une amélioration mineure pourrait être apportée en utilisant la syntaxe de plage plus courte :

func (slice intSlice) pos(value int) int {
    for i, v := range slice {
        if v == value {
            return i
        }
    }
    return -1
}

Alternative pour les tranches d'octets

Si votre tranche contient des éléments d'octet, la fonction bytes.IndexByte peut être utilisée pour trouver la position d'une valeur d'octet spécifique. Sa syntaxe est la suivante :

func IndexByte(s \[\]byte, c byte) int

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!

Déclaration:
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