Maison >développement back-end >Golang >Comment puis-je indexer des éléments dans un pointeur de tranche dans Go ?

Comment puis-je indexer des éléments dans un pointeur de tranche dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 08:08:03366parcourir

How Can I Index Elements in a Slice Pointer in Go?

Indexation des pointeurs de tranche dans Go

Dans Go, l'indexation sur les pointeurs de tranche peut ne pas sembler fonctionner, mais c'est possible avec une légère modification . Lorsque vous essayez d'indexer directement un pointeur de tranche comme p[0], le compilateur signalera une erreur.

Pour accéder à l'élément à l'aide du pointeur de tranche, vous devez déréférencer le pointeur à l'aide de *p. Cela peut être vu dans l'extrait de code suivant :

package main

import (
    "fmt"
)

func main() {
    txs := make([]string, 2)
    txs[0] = "A"

    p := &txs

    fmt.Println((*p)[0]) // Dereference pointer with *
}

Dans cet exemple, (*p)[0] accède à l'élément slice à l'index 0 en déréférençant d'abord le pointeur p avec *. Cette opération de déréférencement renvoie la valeur de tranche sous-jacente, puis l'élément souhaité est indexé à l'aide de [].

Il convient de noter que l'indexation directe des pointeurs de tranche peut être source de confusion et sujette à des erreurs, c'est pourquoi Go ne le prend pas en charge. par défaut. Le déréférencement du pointeur ajoute une étape supplémentaire au code, garantissant la clarté et réduisant les risques d'utilisation incorrecte.

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