Erreur de déréférencement de pointeur nil en Go : causes et correction
Bonjour à tous ! Je suis débutant en Go et j'ai rencontré une erreur qui me laisse perplexe. J'ai une structure User, et j'essaie d'écrire une fonction qui affiche le nom de l'utilisateur. Voici mon code :
```go
package main
import "fmt"
type User struct {
Name string
Age int
}
func printUserName(u *User) {
fmt.Println("User name is:", u.Name)
}
func main() {
var user *User
// Ici, je déclare simplement un pointeur, mais je ne l'initialise pas
printUserName(user)
}
```
Quand j'exécute ce code, j'obtiens l'erreur : `panic: runtime error: invalid memory address or nil pointer dereference`. Je comprends que cela a un rapport avec le fait que le pointeur user est nil, mais je ne comprends pas vraiment comment le corriger.
Dans d'autres langages, comme C++ ou Java, je pourrais simplement passer l'objet par valeur, et tout fonctionnerait. Mais ici, si je passe un pointeur, il doit pointer vers quelque chose de réel ?
S'il vous plaît, expliquez-moi ce qu'est un déréférencement de pointeur nil, pourquoi cela se produit