Was ist der Nullwert für time.Time in Go und wie überprüft man, ob eine Zeitvariable leer ist?
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf eine unklare Situation bei der Arbeit mit dem Paket time gestoßen.
Ich habe eine Struktur, in der eines der Felder ein Datum und eine Uhrzeit ist. Manchmal kann dieses Feld nicht gesetzt sein (null aus anderen Sprachen). In PHP oder JavaScript würde ich einfach auf null prüfen, aber in Go gibt es diesen Luxus nicht. Ich habe versucht, nil zu verwenden, aber der Compiler hat einen Fehler ausgegeben.
Hier ist ein Beispiel meines Codes:
package main
import (
"fmt"
"time"
)
type Event struct {
Name string
CreatedAt time.Time
UpdatedAt time.Time // kann nicht gesetzt sein
}
func main() {
e := Event{
Name: "Testereignis",
// UpdatedAt setze ich nicht
}
// Versuche zu prüfen, ob UpdatedAt gesetzt ist
if e.UpdatedAt == nil { // Kompilierungsfehler
fmt.Println("UpdatedAt ist nicht gesetzt")
}
fmt.Println(e.UpdatedAt) // Gibt aus: 0001-01-01 00:00:00 +0000 UTC
}