Maison > développement back-end > Golang > Go Slices : `var s []int` ou `s := make([]int, 0)` – Quelle déclaration est la meilleure ?

Go Slices : `var s []int` ou `s := make([]int, 0)` – Quelle déclaration est la meilleure ?

Mary-Kate Olsen
Libérer: 2024-12-17 07:10:27
original
133 Les gens l'ont consulté

Go Slices: `var s []int` or `s := make([]int, 0)` – Which Declaration is Best?

Déclarer ou créer des tranches dans Go : var s []int ou s := make([]int, 0)?

Dans Go, les tranches sont un structure de données puissante qui représente un type flexible de type tableau. Lorsque vous travaillez avec des tranches, vous avez peut-être rencontré deux manières différentes de les déclarer :

  • Déclaration simple : var s []int
  • make () Déclaration : s := make([]int, 0)

Comprendre la différence entre ces deux approches sont cruciales pour écrire du code Go efficace et idiomatique.

var s []int

La simple déclaration var s []int n'alloue aucune mémoire. Il crée une tranche nulle, ce qui signifie qu'elle pointe vers une adresse mémoire vide. Cette déclaration est généralement utilisée lorsque vous ne connaissez pas au départ la taille exacte de la tranche dont vous avez besoin ou lorsque vous devez allouer de la mémoire de manière dynamique ultérieurement.

s := make([]int, 0 )

En revanche, s := make([]int, 0) alloue de la mémoire pour une tranche avec 0 élément. Il demande explicitement au compilateur de créer une tranche avec une capacité spécifique, qui correspond au nombre maximum d'éléments qu'elle peut contenir avant de devoir croître. Dans ce cas, sa capacité est de 0. Cette approche est préférable lorsque vous connaissez la taille exacte de la tranche dont vous avez besoin ou lorsque vous souhaitez éviter une réallocation inutile de mémoire.

Laquelle est la meilleure ?

En général, utiliser var s []int est plus idiomatique lorsque vous ne connaissez pas la taille exacte de la tranche dont vous avez besoin ou lorsque vous souhaitez allouer de la mémoire dynamiquement. Si vous connaissez la taille exacte à l'avance ou si vous devez éviter la réallocation de mémoire, s := make([]int, 0) est le meilleur choix.

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