Maison > développement back-end > Golang > Pourquoi ne puis-je pas parcourir un pointeur vers une tranche en Go ?

Pourquoi ne puis-je pas parcourir un pointeur vers une tranche en Go ?

Patricia Arquette
Libérer: 2024-12-04 22:54:16
original
851 Les gens l'ont consulté

Why Can't I Range Over a Pointer to a Slice in Go?

Incapacité de Go à dépasser le pointeur vers une tranche

Dans Go, il est courant de rencontrer l'erreur "Impossible de dépasser le pointeur vers une tranche" lorsque vous tentez de parcourir un pointeur de tranche. Cette erreur provient d'une hypothèse erronée selon laquelle le pointeur serait automatiquement déréférencé lors de l'itération.

Malheureusement, Go ne déréférence pas implicitement les types pointeur vers tranche. La raison en est que les tranches elles-mêmes agissent comme des pointeurs vers des tableaux. Passer une tranche à une fonction donne déjà à la fonction accès aux données sous-jacentes, éliminant ainsi le besoin d'un pointeur supplémentaire.

Comme expliqué dans le livre "Effective Go", "Si une fonction prend un argument de tranche, les changements cela fait que les éléments de la tranche seront visibles à l'appelant, analogue au passage d'un pointeur vers le tableau sous-jacent. "

En interne, une tranche est composée de :

  • Un pointeur vers le premier élément du tableau sous-jacent
  • La longueur de la tranche
  • La capacité de la tranche

Cette structure compacte rend le pointeur inutile, ce qui entraîne l'impossibilité de passer d'un pointeur à une tranche.

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