Maison > développement back-end > Golang > `var s []int` vs `s := make([]int, 0)` : quand dois-je utiliser which pour les tranches Go ?

`var s []int` vs `s := make([]int, 0)` : quand dois-je utiliser which pour les tranches Go ?

Mary-Kate Olsen
Libérer: 2024-12-16 00:01:34
original
422 Les gens l'ont consulté

`var s []int` vs. `s := make([]int, 0)`: When Should I Use Which for Go Slices?

Utilisation de "var s []int" ou "s := make([]int, 0)"

Lors du codage en Go , les développeurs se posent souvent la question de savoir s'il faut utiliser "var s []int" ou "s := make([]int, 0)" pour déclarer ou créer une tranche. Les deux approches sont valides, mais elles diffèrent par leur comportement et leurs implications en matière de mémoire.

"var s []int" déclare simplement une tranche d'entiers. Cependant, il n’alloue aucune mémoire à la tranche, la laissant pointer vers zéro. Cela signifie que la tranche est effectivement vide et ne peut contenir aucune valeur.

D'un autre côté, "s := make([]int, 0)" non seulement déclare une tranche mais lui alloue également de la mémoire. Il crée une tranche d'une longueur initiale de 0, ce qui signifie qu'elle ne peut contenir aucune valeur initialement. Cela diffère de "var s []int" en ce sens qu'il garantit que la mémoire est réservée à la tranche à utiliser.

Généralement, si la taille exacte de la tranche est inconnue, la première approche ("var s []int") est plus idiomatique. Cela permet à la tranche de s'agrandir ou de se réduire dynamiquement selon les besoins. Cependant, si la taille de la tranche est prédéterminée, l'utilisation de "s := make([]int, 0)" est plus efficace, car elle alloue de la mémoire uniquement pour la capacité requise.

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