在一个 if
条件中,我想知道我的数据类型是否为 time.Time
。
最佳方式是如何获取 res.Datas[i]
的数据类型并在 if
循环中进行检查?
res.Datas[i]
的类型不是具体类型而是接口类型(例如 interface{}
),则可以使用类型断言来实现: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
}
如果你不需要 time.Time
值,只需判断接口值是否包装了一个 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
的指针被包装,你需要将它视为另一种类型进行检查。