我定义了一个结构…
type Session struct {
playerId string
beehive string
timestamp time.Time
}
有时我给它分配一个空会话(因为 nil 是不可能的)
session = Session{};
然后我想检查它是否为空:
if session == Session{} {
// do stuff...
}
显然这是行不通的。我怎么写呢?
原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 == 与零值复合文字进行比较,因为
Session
中的所有字段都是 可比较 的:游乐场示例
由于 解析歧义,在 if 条件中,复合文字周围需要括号。
上面
==
的使用适用于所有字段都可 比较 的结构。如果结构包含不可比较的字段(切片、映射或函数),则必须将这些字段与它们的零值一一比较。比较整个值的替代方法是比较必须在有效会话中设置为非零值的字段。例如,如果玩家 ID 在有效会话中必须为 != ““,请使用