如果需要零值,可以用惯用的替代零值

时间:2019-06-30 21:40:15

标签: go

我正在尝试规范来自多个来源的数据。这些来源之一就是ID为空的JSON。

type Entry struct {
  ID *int // Can be null
}

Go用来处理可为空的ID(数字0可能是有效ID)的惯用方式是什么?我在我认为的三个选择之间感到困惑。

我是否通过传递可能为零的指针进行归一化?

type NormalizedEntry struct {
  ID *int
}

我是否添加单独的HasID属性?

type NormalizedEntry struct {
  HasID bool
  ID    int
}

我是否传递-1而不是0来表示“零值”? (例如,如果未找到值,strings.Index如何返回-1)

type NormalizedEntry struct {
  ID int
}

或者还有我还不知道的其他更好的方法吗?

0 个答案:

没有答案