«Без аргументов» звучит как вызов функции. Это структурный литерал без заданных полей. X {} - нулевое значение struct X для любого X.
Russ Cox
1
@RussCox Я не думаю, что это правда. В моем случае у меня есть поле time.Time в моей структуре, которое имеет атрибут «omitempty». Если я не установлю это значение, оно будет автоматически установлено на 0001-01-01 00:00:00 +0000 UTC вместо того, чтобы игнорироваться.
Действительно, если сравнивать, является ли данное значение времени нулевым или нет, это то, что на самом деле следует использовать.
Гаурав
7
Хотя это правильный ответ для сравнения, OP не спрашивал о сравнении, а скорее о том, как инициализировать нулевое значение. Принятый ответ правильный.
IsZero()
чтобы обнаружить нулевое время.Ответы:
Вызов пустого
time.Time
литерала структуры вернет нулевую дату Go. Таким образом, для следующего оператора печати:Выход:
Для полноты официальной документации прямо говорится:
источник
Вместо этого вы должны использовать функцию Time.IsZero ():
источник
Нулевое значение для time.Time является
0001-01-01 00:00:00 +0000 UTC
См http://play.golang.org/p/vTidOlmb9Pисточник