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

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

Mary-Kate Olsen
Libérer: 2024-12-19 14:12:10
original
388 Les gens l'ont consulté

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

Dévoilement de la méthode optimale pour initialiser une tranche vide

Lors de la déclaration d'une tranche vide de taille flexible, la question se pose : Quelle est la approche d'initialisation préférée - make([]int, 0) ou []int{}?

Les deux options conduisent sémantiquement à résultats identiques. Cependant, make([]int, 0) déclenche un appel interne à runtime.makeslice dans Go 1.16.

Alternativement, vous pouvez opter pour une valeur nulle :

var myslice []int
Copier après la connexion

Comme indiqué dans Sur le blog Golang.org, une tranche nulle fonctionne comme une tranche de longueur nulle même si elle ne pointe vers rien. Sa longueur est nulle et il permet l'ajout avec allocation.

Cependant, notez qu'une tranche nulle est sérialisée comme "null" en JSON, tandis qu'une tranche vide est rendue comme "[]".

Quelle que soit la méthode choisie, aucune ne déclenchera une allocation de mémoire, comme le précise @ArmanOrdookhani.

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