【发布时间】:2014-07-03 23:20:57
【问题描述】:
我有一个打算用数据库记录填充的结构,其中一个日期时间列可以为空:
type Reminder struct {
Id int
CreatedAt time.Time
RemindedAt *time.Time
SenderId int
ReceiverId int
}
由于指针可以是nil,我将RemindedAt 设为指针,但这需要代码知道At 变量之间的区别。有没有更优雅的方法来处理这个问题?
【问题讨论】:
-
“.”运算符同样适用于指针和非指针值。为什么代码需要“知道区别”?您的意思是在使用之前检查它是否为 nil 还是...?
-
不,如果这是真的,那么我所拥有的就是有效的。我以为我必须处理取消引用。
-
@TobiLehman,在大多数情况下,Go 将 dereference pointers to structs,您的代码非常好。