Maison > développement back-end > Golang > Comment puis-je allouer des tableaux de taille variable dans Go ?

Comment puis-je allouer des tableaux de taille variable dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-18 02:05:09
original
517 Les gens l'ont consulté

How Can I Allocate Arrays with Variable Size in Go?

Allocation de tableaux avec une taille variable dans Go

Contrairement aux tableaux de taille constante déclarés à l'aide de const, Go ne permet pas l'allocation directe de tableaux avec tailles déterminées par l'exécution. Cela est évident dans le code illégal suivant :

n := 1
var a [n]int
Copier après la connexion

Cependant, il existe une solution : utilisez des tranches au lieu de tableaux. Les tranches sont des références aux tableaux sous-jacents et offrent des capacités de redimensionnement dynamique. La fonction intégrée make() est utilisée pour créer des tranches et leurs tableaux sous-jacents. Il prend trois arguments :

  • Longueur : Spécifie la longueur initiale de la tranche
  • Capacité : Indique la capacité maximale du tableau sous-jacent
  • Type d'élément : Définit la type d'éléments dans la tranche

En créant une tranche à l'aide de make(), on alloue indirectement un tableau avec un taille d'exécution :

n := 12
s := make([]int, n, 2*n)
Copier après la connexion

Dans ce cas, un tableau de taille 2*n est alloué, et s fait référence à une tranche contenant les n premiers éléments du tableau.

Cela reste flou pourquoi Go ne permet pas l'allocation directe de tableaux de taille variable, mais la solution consistant à utiliser des tranches offre une alternative flexible et efficace. Par conséquent, il est recommandé d'utiliser des tranches dans la plupart des scénarios lorsque vous travaillez avec des structures de données dynamiques dans Go.

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