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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-12-13 05:34:08475parcourir

How Can I Allocate Non-Constant Size Arrays in Go?

Allocation de tableaux de taille non constante dans Go : les tranches à la rescousse

Contrairement à d'autres langages, Go ne permet pas l'allocation de tableaux avec une dynamique tailles directement. Lorsque vous essayez de créer un tableau avec une taille variable, telle que var a [n]int, vous rencontrerez une erreur de compilation.

Cette restriction n'est pas une limitation mais plutôt une poussée vers l'utilisation de tranches. , une structure de données plus flexible et plus puissante dans Go. Les tranches sont similaires aux tableaux, mais elles ont une taille dynamique qui peut être ajustée au moment de l'exécution.

Pour allouer un tableau à l'aide de tranches, vous pouvez utiliser la fonction make, qui crée à la fois une tranche et le tableau sous-jacent :

n := 12
s := make([]int, n, 2*n)

Dans cet exemple, s est une tranche d'entiers, et un nouveau tableau de taille 2*n est alloué pour stocker les éléments de la tranche. La tranche s fait initialement référence à la première moitié du tableau.

Cette méthode offre à la fois la flexibilité d'ajuster dynamiquement la taille du tableau et les avantages de travailler avec des tableaux, tels que l'allocation de mémoire contiguë garantie. Par conséquent, il est courant dans Go de s'appuyer sur des tranches plutôt que sur des tableaux pour la gestion dynamique des données.

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