In una condizione di errore, ho cercato di tornare nil
, che genera l'errore:Qual è il valore di "zero" per il tempo. Time in Go?
cannot use nil as type time.Time in return argument
Qual è il valore zero
per time.Time
?
In una condizione di errore, ho cercato di tornare nil
, che genera l'errore:Qual è il valore di "zero" per il tempo. Time in Go?
cannot use nil as type time.Time in return argument
Qual è il valore zero
per time.Time
?
Invocare una struttura vuota time.Time
restituirà la data zero di Go. Così, per la seguente dichiarazione stampa:
fmt.Println(time.Time{})
L'output è:
0001-01-01 00:00:00 +0000 UTC
Per ragioni di completezza, il official documentation afferma esplicitamente:
The zero value of type Time is January 1, year 1, 00:00:00.000000000 UTC.
"Passing no arguments" fa sembrare una chiamata di funzione. È una struttura letterale senza campi specificati. X {} è il valore zero della struct X per qualsiasi X. –
@RussCox Non penso che sia vero. Nel mio caso, ho un campo di tempo. Tempo nella mia struttura che ha attributo 'omitempty'. Se non imposto questo valore, viene automaticamente impostato su 0001-01-01 00:00:00 +0000 UTC anziché essere ignorato. –
@GauravOjha Vedi [Golang JSON omitempty With time.Time Field] (http://stackoverflow.com/questions/32643815/golang-json-omitempty-with-time-time-field/32646035#32646035). – icza
Il valore zero per tempo. Il tempo è 0001-01-01 00:00:00 +0000 UTC
Vedi http://play.golang.org/p/vTidOlmb9P
Y ou dovrebbe utilizzare la funzione Time.IsZero() invece:
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.
Questa dovrebbe essere la risposta accettata. –
Infatti, se si confronta se il valore dato per il tempo è nullo o no, questo è quello che dovrebbe essere effettivamente utilizzato. –
e si può usare 'IsZero()' per rilevare il tempo zero. – Matt