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
Patricia Arquetteoriginal
2024-12-13 16:40:13445parcourir

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)

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)
}

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

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!

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