Go:如何检查struct属性是否显式设置为零值?

时间:2016-03-15 14:38:17

标签: go

type Animal struct {
    Name string
    LegCount int
}

snake := Animal{Name: "snake", LegCount: 0}
worm := Animal{Name: "worm"}

问题:如何在snakeworm设置完成后检查,并告知:

  1. snake已明确设置为LegCount为0。
  2. worm的{​​{1}}未明确设置(因此基于其默认值)?

1 个答案:

答案 0 :(得分:9)

根本不可能区分。

如果要从XML或JSON解组数据,请使用指针。

type Animal struct {
    Name *string
    LegCount *int
}

您将获得缺少字段的nil值。

您可以在案例中使用相同的约定。