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
Mary-Kate Olsenoriginal
2024-12-19 14:12:10374parcourir

`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

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!

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