Maison > développement back-end > Golang > `make([]int, 0)` vs `[]int{}` : quelle est la meilleure façon d'initialiser une tranche vide dans Go ?

`make([]int, 0)` vs `[]int{}` : quelle est la meilleure façon d'initialiser une tranche vide dans Go ?

Linda Hamilton
Libérer: 2024-12-19 04:34:08
original
803 Les gens l'ont consulté

`make([]int, 0)` vs. `[]int{}`: What's the Best Way to Initialize an Empty Slice in Go?

Bonne pratique pour initialiser des tranches vides

Dans Go, la création d'une tranche vide avec une taille non fixe peut être réalisée en utilisant deux méthodes :

  • make([]int, 0)
  • []int{}

L'approche considérée comme la bonne dépend des facteurs suivants :

Équivalence sémantique :

Les deux méthodes donnent une tranche vide. Ils sont sémantiquement identiques et se comporteront de la même manière dans la plupart des scénarios.

Implémentation interne :

  • fonction make() : effectue un appel interne au runtime pour créer la tranche.
  • []{} syntaxe : crée un littéral composite, appelant implicitement make() sous le capuche.

Performance :

Aucune des options ci-dessus n'implique une allocation. Il n'y a donc aucune différence de performances entre eux.

Autres options :

Vous pouvez également déclarer une tranche vide en utilisant une valeur nulle :

  • var myslice []int

Cependant, notez qu'une tranche nulle est fonctionnellement équivalente à une tranche vide, mais elle ne pointe vers rien.

JSON Marshaling :

  • Nil slice : Marshals into "null"
  • Vide Slice : Marshals into "[] "

En fin de compte, le choix entre make() et []{} est avant tout une question de préférence. Cependant, il est important d'être conscient des différences de mise en œuvre interne lors du choix entre les deux options.

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