„Przekazywanie żadnych argumentów” sprawia, że brzmi to jak wywołanie funkcji. Jest to literał strukturalny bez określonych pól. X {} jest zerową wartością struktury X dla dowolnego X.
Russ Cox
1
@RussCox Nie sądzę, że to prawda. W moim przypadku mam pole czasu - czas w mojej strukturze, która ma atrybut „omitempty”. Jeśli nie ustawię tej wartości, zostanie automatycznie ustawiona na 0001-01-01 00:00:00 + 0000 UTC zamiast ignorowania.
Rzeczywiście, porównując, czy dana wartość czasu jest zerowa, czy też nie, to właśnie tego należy użyć.
Gaurav Ojha
7
Chociaż jest to poprawna odpowiedź do porównania, PO nie pytał o porównanie, ale raczej o to, jak zainicjować wartość zerową. Zaakceptowana odpowiedź jest prawidłowa.
IsZero()
do wykrycia czasu zerowego.Odpowiedzi:
Wywołanie pustego
time.Time
literału struktury zwróci datę zerową Go. W związku z tym dla następującego oświadczenia drukowania:Wynik to:
Gwoli ścisłości oficjalna dokumentacja wyraźnie stwierdza:
źródło
Zamiast tego należy użyć funkcji Time.IsZero ():
źródło
Wartość zerowa dla czasu Czas to
0001-01-01 00:00:00 +0000 UTC
Zobacz http://play.golang.org/p/vTidOlmb9Pźródło