"Não passar argumentos" soa como uma chamada de função. É um literal de estrutura sem campos especificados. X {} é o valor zero da estrutura X para qualquer X.
Russ Cox
1
@RussCox Eu não acho que isso seja verdade. No meu caso, eu tenho um campo de time.Time na minha estrutura que possui o atributo 'omitempty'. Se eu não definir esse valor, ele será definido automaticamente como 0001-01-01 00:00:00 +0000 UTC em vez de ser ignorado.
De fato, se comparar se o valor dado para o tempo é nulo ou não, é isso que realmente deve ser usado.
Gaurav Ojha
7
Embora essa seja a resposta correta para comparação, o OP não perguntou sobre comparação, mas como inicializar o valor zero. A resposta aceita está correta.
IsZero()
para detectar o tempo zero.Respostas:
Invocar um
time.Time
literal de estrutura vazio retornará a data zero de Go. Assim, para a seguinte declaração de impressão:A saída é:
Por uma questão de exaustividade, a documentação oficial declara explicitamente:
fonte
Você deve usar a função Time.IsZero ():
fonte
O valor zero para time.Time é
0001-01-01 00:00:00 +0000 UTC
See http://play.golang.org/p/vTidOlmb9Pfonte