Qu'est-ce que null/nil en Go et comment travailler avec ?
Bonjour à tous ! J'ai commencé à étudier Go et j'ai rencontré le concept de nil. Dans d'autres langages (par exemple, Java ou JavaScript), il y a null, qui provoque souvent des erreurs (NullPointerException). En Go, comme je l'ai compris, on utilise nil, mais le comportement est différent.
Voici ce que j'ai essayé :
package main\n\nimport "fmt"\n\nfunc main() {\n var p *int\n fmt.Println(p) // affiche nil\n // fmt.Println(*p) // panic: runtime error: invalid memory address or nil pointer dereference\n \n var s []int\n fmt.Println(s == nil) // true\n fmt.Println(len(s)) // 0\n // s[0] = 1 // panic\n \n var m map[string]int\n fmt.Println(m == nil) // true\n // m["key"] = 1 // panic\n}\nQuestions :
- Pourquoi
nil