Maison > développement back-end > Golang > Quelle est la différence entre la capacité et la longueur des Go Slices ?

Quelle est la différence entre la capacité et la longueur des Go Slices ?

Patricia Arquette
Libérer: 2024-12-13 16:40:13
original
444 Les gens l'ont consulté

What's the Difference Between Capacity and Length in Go Slices?

Comprendre la distinction entre la capacité et la longueur d'une tranche

Une tranche dans Go est une structure de données qui fournit un moyen flexible et efficace de gérer des collections de valeurs. Il fonctionne sur un tableau sous-jacent, offrant deux propriétés clés : la capacité et la longueur.

Capacité

La capacité d'une tranche fait référence au nombre total d'éléments que le sous-jacent le tableau peut contenir. Lors de la création d'une tranche à l'aide de la fonction make(), la capacité peut être spécifiée comme troisième argument. Par exemple :

x := make([]int, 0, 5)
Copier après la connexion

Dans ce cas, la tranche x a une longueur de 0 mais une capacité de 5.

Longueur

Le la longueur d'une tranche représente le nombre d'éléments qu'elle contient actuellement. Lors de l'initialisation d'une tranche de longueur nulle, comme dans l'exemple ci-dessus, la longueur sera également 0.

Différence entre la capacité et la longueur

Alors que la capacité indique le nombre maximum d'éléments que la tranche peut accueillir, la longueur indique le nombre réel de valeurs non nulles qu'elle stocke. La longueur d'une tranche ne peut jamais être supérieure à sa capacité, mais elle peut être inférieure à la capacité si tous les éléments ne sont pas remplis.

Exemple

Pour un meilleur Comprenant, considérons l'exemple suivant :

s := make([]int, 0, 3)
for i := 0; i < 5; i++ {
    s = append(s, i)
}
Copier après la connexion

Ce code crée une tranche d'une capacité de 3, puis y ajoute des valeurs jusqu'à ce qu'elle atteigne sa capacité. Au fur et à mesure que la capacité est dépassée, la tranche sera automatiquement redimensionnée et sa capacité augmentera. La sortie de ce code serait :

cap 3, len 1
cap 3, len 2
cap 3, len 3
cap 6, len 4
cap 6, len 5
Copier après la connexion

Dans cette sortie, la capacité commence à 3 et double lorsque la tranche atteint sa capacité. La longueur, cependant, augmente à chaque opération d'ajout et représente le nombre de valeurs réelles.

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