Что такое значение `zero` для time.Time в Go?
В случае ошибки я попытался вернуть nil
, который выдает ошибку:
cannot use nil as type time.Time in return argument
Что такое zero
значение для time.Time
?
Ответы
Ответ 1
Вызов пустого литерала struct time.Time
будет возвращать нулевую дату. Таким образом, для следующего оператора печати:
fmt.Println(time.Time{})
Вывод:
0001-01-01 00:00:00 +0000 UTC
Для полноты официальная документация прямо указывается:
Нулевое значение типа Time - 1 января, год 1, 00: 00: 00.000000000 UTC.
Ответ 2
Вместо этого вы должны использовать функцию Time.IsZero():
func (Time) IsZero
func (t Time) IsZero() bool
IsZero reports whether t represents the zero time instant, January 1, year 1, 00:00:00 UTC.
Ответ 3
Значение нуля для времени. Время 0001-01-01 00:00:00 +0000 UTC
См. http://play.golang.org/p/vTidOlmb9P