Maison > développement back-end > Golang > Comment convertir une Go Slice en tableau sans copier ?

Comment convertir une Go Slice en tableau sans copier ?

Barbara Streisand
Libérer: 2024-12-09 08:01:07
original
554 Les gens l'ont consulté

How to Convert a Go Slice to an Array Without Copying?

Conversion d'une tranche en tableau dans Go sans copie

Lorsque vous travaillez avec des tranches et des tableaux dans Go, il peut être nécessaire d'effectuer une conversion entre les deux types. Un scénario courant consiste à convertir une tranche en tableau sans en faire de copie. Ceci peut être réalisé en utilisant plusieurs méthodes différentes.

Utilisation de la fonction de copie

La fonction de copie vous permet de copier des éléments d'une tranche à une autre. Cependant, il ne peut copier qu'entre tranches, pas entre tranches et tableaux. Pour contourner ce problème, vous pouvez utiliser une astuce :

varLead := Lead{}
copy(varLead.Magic[:], someSlice[0:4])
Copier après la connexion

Dans ce code, varLead.Magic est un tableau de taille 4, tandis que someSlice est une tranche. En utilisant la syntaxe [:] sur varLead.Magic, nous créons un en-tête de tranche qui pointe vers le tableau sous-jacent. La fonction de copie copie ensuite les éléments de someSlice[0:4] dans cet en-tête de tranche, le convertissant ainsi en tableau sans faire de copie.

Utiliser une boucle for

Une autre option consiste à utilisez une boucle for pour copier manuellement les éléments de la tranche vers le tableau :

for index, b := range someSlice {
    varLead.Magic[index] = b
}
Copier après la connexion

Ce code parcourt les éléments de someSlice et attribue chaque élément à l'index correspondant dans varLead.Magic. C'est un moyen simple et direct de convertir une tranche en tableau sans en faire une copie.

Utiliser des littéraux

Enfin, vous pouvez également utiliser des littéraux pour créer un tableau à partir d'une tranche :

varLead.Magic = [4]byte{someSlice[0], someSlice[1], someSlice[2], someSlice[3]}
Copier après la connexion

Ce code crée explicitement un tableau de taille 4 et lui attribue les quatre premiers éléments de someSlice. C'est le moyen le plus compact et le plus lisible de convertir une tranche en tableau, mais cela peut devenir fastidieux si le tableau comporte un grand nombre d'éléments.

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