Dans Go, les tranches sont des références aux tableaux sous-jacents et leurs en-têtes stockent des informations sur la longueur et la capacité de la tranche, ainsi qu'un pointeur vers les données sous-jacentes. Bien que le contenu d'une tranche puisse être modifié, son en-tête reste généralement le même.
Considérez l'extrait de code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Lorsque la fonction SubtractOneFromLength est appelée, elle modifie la tranche mais pas l'en-tête de tranche. Pour inspecter l'en-tête de tranche, vous pouvez utiliser le type reflex.SliceHeader.
1 2 3 4 5 |
|
L'opération non sécurisée suivante montre comment convertir un pointeur de tranche en *reflect.SliceHeader :
1 |
|
Vous pouvez ensuite imprimer le contenu de l'en-tête en utilisant la chaîne de format %v :
1 |
|
Le Go Playground produit le sortie suivante :
1 |
|
Cette sortie fournit l'adresse mémoire des données sous-jacentes (Data), la longueur de la tranche (Len) et sa capacité (Cap).
Sans danger :
Accéder aux informations d'en-tête de tranche sans danger est également possible :
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!