Я пытаюсь нормализовать данные из ряда источников. Одним из таких источников является JSON с обнуляемым идентификатором.
type Entry struct {
ID *int // Can be null
}
В чем идиоматический способ Go работать с обнуляемым идентификатором, где число 0 может быть действительным идентификатором? Я разрываюсь между тем, что я вижу как три варианта.
Нормализуем ли я, передавая, возможно, нулевой указатель?
type NormalizedEntry struct {
ID *int
}
Добавить отдельное свойство HasID?
type NormalizedEntry struct {
HasID bool
ID int
}
Передам ли я -1 вместо 0, чтобы представить «нулевое значение»? (Например, как strings.Index возвращает -1, если значение не найдено)
type NormalizedEntry struct {
ID int
}
Или есть какой-то другой, лучший метод, о котором я еще не знаю?