¿Cuál es el valor cero para time.Time en Go y cómo verificar si una variable de tiempo está vacía?
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con una situación confusa al trabajar con el paquete time.
Tengo una estructura en la que uno de los campos es una fecha y hora. A veces este campo puede no estar definido (null de otros lenguajes). En PHP o JavaScript simplemente verificaría con null, pero en Go no existe ese lujo. Intenté usar nil, pero el compilador dio un error.
Aquí hay un ejemplo de mi código:
package main
import (
"fmt"
"time"
)
type Event struct {
Name string
CreatedAt time.Time
UpdatedAt time.Time // puede no estar definido
}
func main() {
e := Event{
Name: "Evento de prueba",
// UpdatedAt no lo defino
}
// Intento verificar si UpdatedAt está definido
if e.UpdatedAt == nil { // Error de compilación
fmt.Println("UpdatedAt no está definido")
}
fmt.Println(e.UpdatedAt) // Muestra: 0001-01-01 00:00:00 +0000 UTC
}