Sobes.tech
Junior — Middle

Comment créer et initialiser correctement des slices en Go?

sobes.tech IA

Réponse de l'IA

En Go, les slices sont des structures de données dynamiques qui représentent une référence à un tableau avec une longueur et une capacité spécifiées.

Les slices peuvent être créés et initialisés de plusieurs manières :

  1. Déclaration d’un slice sans initialisation (slice nul) :
var s []int // slice nul, longueur et capacité 0
  1. Initialisation d’un slice à l’aide d’un littéral :
s := []int{1, 2, 3} // slice de longueur 3
  1. Création d’un slice avec la fonction make :
s := make([]int, 5) // slice de longueur 5, rempli de zéros
s2 := make([]int, 3, 10) // longueur 3, capacité 10

La fonction make alloue un tableau en arrière-plan et retourne un slice qui y fait référence.

  1. Création d’un slice à partir d’un tableau :
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // slice des éléments avec indices 1,2,3

Il est important de se rappeler que les slices sont des références à des tableaux, donc modifier les éléments du slice modifie également le tableau d’origine.

Exemple d’utilisation :

package main
import "fmt"

func main() {
    s := make([]int, 3, 5)
    fmt.Println(s)       // [0 0 0]
    fmt.Println(len(s))  // 3
    fmt.Println(cap(s))  // 5

    s = append(s, 4, 5)
    fmt.Println(s)       // [0 0 0 4 5]
    fmt.Println(len(s))  // 5
    fmt.Println(cap(s))  // 5
}

Cette approche permet de travailler efficacement avec des tableaux dynamiques en Go.