"Keine Argumente übergeben" klingt wie ein Funktionsaufruf. Es ist ein Strukturliteral ohne Felder. X {} ist der Nullwert der Struktur X für jedes X.
Russ Cox
1
@RussCox Ich glaube nicht, dass das stimmt. In meinem Fall habe ich ein Zeitfeld. Zeit in meiner Struktur, die das Attribut 'omitempty' hat. Wenn ich diesen Wert nicht einstelle, wird er automatisch auf 0001-01-01 00:00:00 +0000 UTC gesetzt, anstatt ignoriert zu werden.
Wenn man vergleicht, ob der angegebene Zeitwert Null ist oder nicht, sollte dies tatsächlich verwendet werden.
Gaurav Ojha
7
Während dies die richtige Antwort für den Vergleich ist, fragte das OP nicht nach dem Vergleich, sondern nach der Initialisierung des Nullwerts. Akzeptierte Antwort ist richtig.
IsZero()
, um die Nullzeit zu erkennen.Antworten:
Wenn Sie ein leeres
time.Time
Strukturliteral aufrufen, wird das Nulldatum von Go zurückgegeben. Also für die folgende Druckanweisung:Die Ausgabe ist:
Der Vollständigkeit halber heißt es in der offiziellen Dokumentation ausdrücklich:
quelle
Sie sollten stattdessen die Funktion Time.IsZero () verwenden:
quelle
Der Nullwert für time.Time lautet
0001-01-01 00:00:00 +0000 UTC
Siehe http://play.golang.org/p/vTidOlmb9Pquelle