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
Mary-Kate Olsenoriginal
2024-12-18 02:05:09517parcourir

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

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)

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!

Déclaration:
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