Dans le monde de Go, les tranches sont une structure de données fondamentale. Cependant, leur contenance et leur longueur peuvent parfois être déroutantes pour les débutants. Examinons les concepts à l'aide d'un exemple pratique.
func main() { a := make([]int, 5) // [0,0,0,0,0] len=5 cap=5 b := make([]int, 0, 5) // [] len=0 cap=5 c := b[:2] // [0,0] len=2 cap=5 d := c[2:5] // [0,0,0] len=3 cap=3 }
Comprendre l'initialisation des tranches
a et b sont initialisés à l'aide de make, mais avec des paramètres différents. a initialise un tableau d'entiers d'une longueur de 5 et d'une capacité de 5, tandis que b initialise un tableau vide d'une capacité de 5.
Valeurs nulles et initialisation du tableau
Le concept de Go de variables non initialisées est important ici. Lorsque vous créez une variable sans définir explicitement sa valeur, elle sera initialisée avec sa valeur zéro. Pour un tableau d'entiers, cela signifie un tableau contenant tous des zéros.
Découpage et valeurs nulles
Lorsque vous tranchez b avec [:2], vous créez une nouvelle tranche c. Cette tranche pointe vers le même tableau de support que b, mais uniquement les deux premiers éléments. Puisque le tableau de sauvegarde a été initialisé avec des zéros, c contiendra les éléments [0,0].
Découpage et capacité
Enfin, lorsque vous tranchez c avec [2 :5], vous créez une nouvelle tranche d. Cette tranche partage le même tableau de support que c, mais avec des indices différents. La capacité de d est de 5-2 = 3, car elle représente les éléments restants dans le tableau de support après le découpage.
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!