Avatar ·

Comment initialiser correctement une slice vide en Go : var s []int vs s := make([]int, 0) ?

Bonjour à tous ! J'ai récemment commencé à étudier Go et j'ai rencontré un problème avec l'initialisation de slices vides. Apparemment, il existe deux méthodes populaires : 1. `var s []int` — déclaration sans initialisation (nil-slice) 2. `s := make([]int, 0)` — initialisation avec une slice vide via make J'ai lu que les deux options peuvent être utilisées et que dans certains cas, elles se comportent de la même manière. Par exemple, si je fais `fmt.Println(s)`, dans les deux cas, cela affiche `[]`. Mais j'ai remarqué un comportement étrange lors de la sérialisation en JSON. Voici un exemple : ```go package main import ( "encoding/json" "fmt" ) type MyStruct struct { Items []string } func main() { s1 := MyStruct{} s2 := MyStruct{Items: []string{}} json1, _ := json.Marshal(s1) json2, _ := json.Marshal(s2) fmt.Println(str