Dans Go, les tranches sont un structure de données puissante qui représente un type flexible de type tableau. Lorsque vous travaillez avec des tranches, vous avez peut-être rencontré deux manières différentes de les déclarer :
Comprendre la différence entre ces deux approches sont cruciales pour écrire du code Go efficace et idiomatique.
var s []int
La simple déclaration var s []int n'alloue aucune mémoire. Il crée une tranche nulle, ce qui signifie qu'elle pointe vers une adresse mémoire vide. Cette déclaration est généralement utilisée lorsque vous ne connaissez pas au départ la taille exacte de la tranche dont vous avez besoin ou lorsque vous devez allouer de la mémoire de manière dynamique ultérieurement.
s := make([]int, 0 )
En revanche, s := make([]int, 0) alloue de la mémoire pour une tranche avec 0 élément. Il demande explicitement au compilateur de créer une tranche avec une capacité spécifique, qui correspond au nombre maximum d'éléments qu'elle peut contenir avant de devoir croître. Dans ce cas, sa capacité est de 0. Cette approche est préférable lorsque vous connaissez la taille exacte de la tranche dont vous avez besoin ou lorsque vous souhaitez éviter une réallocation inutile de mémoire.
Laquelle est la meilleure ?
En général, utiliser var s []int est plus idiomatique lorsque vous ne connaissez pas la taille exacte de la tranche dont vous avez besoin ou lorsque vous souhaitez allouer de la mémoire dynamiquement. Si vous connaissez la taille exacte à l'avance ou si vous devez éviter la réallocation de mémoire, s := make([]int, 0) est le meilleur choix.
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!