Maison >développement back-end >Golang >Comment puis-je indexer des éléments dans un pointeur de tranche dans 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!