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
Mary-Kate Olsenoriginal
2024-12-16 00:01:34429parcourir

`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!

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