Получается, что задача сводится к определению, как отличить дефолт от переданного числа. Я бы не придумывал костыли и воспользовался бы ссылками на типы.
Как избежать подставления пустых строк в gorm? Есть структура Users, а у неё поле MyLang, так вот когда оно не задано, то есть является "", gorm все равно кладёт '' в запрос, а я хочу, чтобы ставилось значение по умолчанию от БД.
Два варианта... Или вручную вызвать перед фором, или сделать что-то типа ticker.C <- time.Now() перед фором. Оба варианта немного попахивают, но вполне работают