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

Nat*_*ppi 5 go

type Animal struct {
    Name string
    LegCount int
}

snake := Animal{Name: "snake", LegCount: 0}
worm := Animal{Name: "worm"}
Run Code Online (Sandbox Code Playgroud)

问题:我如何检查snake并确定worm它们后,告诉:

  1. snake显式设置LegCount为0.
  2. wormLegCount没有明确设置(并因此基于关闭其默认值)?

Grz*_*Żur 10

根本不可能区分.

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

type Animal struct {
    Name *string
    LegCount *int
}
Run Code Online (Sandbox Code Playgroud)

您将获得nil缺席字段的值.

在您的情况下,您可以使用相同的约定.