2013-06-21 60 views
0

我有一個結構,可能不會在其中一個字段上設置time.Time值。在測試無效性時,我不能使用nil或0. time.Unix(0,0)也不相同。我想出了這個:最簡潔的方法來測試零時間。時間

var emptyTime time.Time 
if thing.time == emptyTime { 
    ... 
} 

但我想這爲我節省了線/臨時變量

回答

9

使用IsZero()的解決方案:

if thing.time.IsZero() { 

} 
+0

最好的選擇,+1。 – Luke

+0

很好,謝謝! –

-1
if thing.time == time.Time{} { 
     ... 
} 
+1

'如果事情。時間==(time.Time {}){//。 。 。 }'。 「當使用LiteralType的TypeName形式的複合文字出現在關鍵字和」if「,」for「或」switch「語句的塊的左大括號之間時,出現解析歧義,因爲括號字面與引入語句塊的人相混淆。爲了解決這種罕見情況下的模糊性,複合字面值必須出現在括號內。「 [複合文字](http://golang.org/ref/spec#Composite_literals) – peterSO

+0

請至少描述你炫耀的內容。只是拋出一塊代碼可能不適合缺乏經驗/知識淵博的人。 – Kissaki