Avatar ·

Error nil pointer dereference en Go: causas y solución

¡Hola a todos! Soy nuevo en Go y me encontré con un error que me tiene perplejo. Tengo una estructura User, y estoy intentando escribir una función que imprima el nombre del usuario. Aquí está mi código: ```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 // Aquí solo declaro el puntero, pero no lo inicializo printUserName(user) } ``` Cuando ejecuto este código, obtengo el error: `panic: runtime error: invalid memory address or nil pointer dereference`. Entiendo que esto tiene algo que ver con que el puntero user es nil, pero no comprendo del todo cómo solucionarlo. En otros lenguajes, como C++ o Java, podría simplemente pasar el objeto por valor, y todo funcionaría. Pero aquí, si paso un puntero, ¿debe apuntar a algo real? Por favor, explíquenme qué es nil pointer dereference, por qué ocurre esto