2017-01-05 15 views
0

ifの場合、私のデータのタイプがtime.Timeかどうかを知りたいと思っています。データが時間であるかどうかを確認します。時間

res.Datas[i]のデータ型を取得し、ifループでチェックする最良の方法は何ですか?あなただけしたい、あなたはtime.Time値を必要としない場合

if t, ok := res.Datas[i].(time.Time); ok { 
    // it is of type time.Time 
    // t is of type time.Time, you can use it so 
} else { 
    // not of type time.Time, or it is nil 
} 

res.Datas[i]の種類を想定し

答えて

3

は、単にこのためtype assertionを使用し、具体的なタイプが、インタフェースタイプ(例えばinterface{})ではありませんインタフェース値がtime.Timeをラップどうか:

if _, ok := res.Datas[i].(time.Time); ok { 
    // it is of type time.Time 
} else { 
    // not of type time.Time, or it is nil 
} 

も種類time.Time*time.Timeが異なっていることに注意してください。 time.Timeへのポインタがラップされている場合、別のタイプとしてそれをチェックする必要があります。

+0

この説明をいただきありがとうございます!それは実際に動作します:) – Doby

関連する問題