Get Mystery Box with random crypto!

Указатели как поля в структуре. Наткнулся на код, в котором | web mess

Указатели как поля в структуре.

Наткнулся на код, в котором для полей используются ссылочные типы, например, *bool, *string и т.д
Какой-то явной необходимости в этом нет, всё было работало и без этого.
Уточнил, оказалось, что это такая конвенция, потому что поинтер можно проверить v != nil и т.д
А для каждого другого типа нужно сравнивать с нулевым значением.

Плюс к этому всему в коде куча конструкций вроде:
isTrue := true
a.someFlag = &isTrue
Они мне не кажутся красивыми.
Лучше уж написать ф-цию, которая возвращает поинтер на конкретный тип.

Ну, я решил немного изучить вопрос и наткнулся на вот этот тред.
Если коротко:
Есть смысл использовать *T как поле в случае маршалинга, когда нужно передавать нулевое значение не смотря на omitempty. Например, поле int и нам нужно передавать 0, в случае с указателем, значение в json смаршалится как 0.
В случае с nil - поля не будет в json'e.
Таким образом, можно разделять случаи когда поле не было передано и когда поле имеет нулевое значение.

Но мне кажется, что это нужно настолько редко :)
Интересно было бы начать здесь тред по этому вопросу и услышать ваше мнение.