Cómo prevenir/arreglar el pánico: error de tiempo de ejecución: dirección de memoria no válida o referencia a un puntero nulo.
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy nuevo en golang. A partir del código a continuación, a veces el color podría ser nulo, pero todavía necesito llamar a GetCategory. Esto resultaría en el siguiente error:
pánico: error en tiempo de ejecución: dirección de memoria no válida o referencia de puntero nula
¿Cómo llamar a GetCategory con gracia y evitar el error?
¡Gracias de antemano por cualquier ayuda!
“`package main
import (
"fmt"
"strings"
)
type evento struct {
color *string
Categoria *string
}
func GetCategory(color string) (*string, error) {
var categoria string
if strings.HasPrefix(color, "red") {
categoria = "gusta"
} else if strings.HasPrefix(color, "blue") {
categoria = "no gusta"
}
return &categoria, nil
}
func main() {
categoria := "rojo"
eventObj := evento{
Categoria: &categoria,
}
fmt.Println(GetCategory(*eventObj.color))
}
“`
davy.ai
Se puede usar un operador ternario para verificar si
color
es nulo antes de llamar aGetCategory
: