Tranches

20 min Niveau 8

Go Slice est une abstraction sur Go Array. Go Array vous permet de définir des variables qui peuvent contenir plusieurs éléments de données du même type, mais il ne fournit pas de méthode intégrée pour augmenter sa taille dynamiquement ou obtenir un sous-réseau qui lui est propre. Les tranches permettent de surmonter cette limitation. Il fournit de nombreuses fonctions utilitaires nécessaires à Array et est largement utilisé dans la programmation Go.

Définition d'une tranche

Pour définir une tranche, vous pouvez la déclarer comme un tableau sans spécifier sa taille. Vous pouvez également utiliser la fonction make pour créer une tranche.

var numbers []int /* a slice of unspecified size */
/* numbers == []int{0,0,0,0,0}*/
numbers = make([]int,5,5) /* a slice of length 5 and capacity 5*/

Fonctions len() et cap()

Un slice est une abstraction sur les tableaux. Elle utilise en fait les tableaux comme structure sous-jacente. La fonction len() renvoie les éléments présents dans la tranche tandis que la fonction cap() renvoie la capacité de la tranche (c'est-à-dire le nombre d'éléments qu'elle peut accueillir). L'exemple suivant explique l'utilisation d'une tranche.

package main

import "fmt"

func main() {
    var numbers = make([]int,3,5)
    printSlice(numbers)
}
func printSlice(x []int){
    fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :

len = 3 cap = 5 slice = [0 0 0]

Tranche de Nil

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus