Junior — Middle
Peut-on effectuer une opération de lecture de données à partir d'une tranche qui n'a pas été initialisée au préalable?
sobes.tech IA
Réponse de l'IA
En Go, les slices sont des structures qui contiennent un pointeur vers un tableau, une longueur et une capacité. Si un slice n'a pas été initialisé (c'est-à-dire qu'il est égal à nil), une tentative de lecture en proviendra d'une panique.
Par exemple :
var s []int // slice nil
fmt.Println(s[0]) // panic : erreur d'exécution : index hors de portée
Pour lire en toute sécurité à partir d'un slice, il doit être initialisé, par exemple avec make ou en lui assignant un tableau existant :
s := make([]int, 3)
fmt.Println(s[0]) // 0, en toute sécurité
Ainsi, il est impossible de lire à partir d'un slice non initialisé — cela entraînera une erreur à l'exécution.