# #go
Вопрос:
У меня есть модели базы данных и JSON, которые используют аннотации полей структуры для различных целей, а именно для указания перечислений, какие значения приемлемы для проверки и т.д.
Пример модели базы данных:
type QRCode struct {
Algorithm string `json:"algorithm" gorm:"type:enum('hmac-sha3-256-v1')" validate:"oneof=hmac-sha3-256-v1"`
PublicCode []byte `json:"token" gorm:"size:32" validate:"len=32"`
UserType string `json:"user_type" gorm:"type:enum('admin','member')" validate:"one_of=admin member"`
gorm.Model
}
Таким образом, в этом случае существует несколько различных констант:
- размер открытого ключа, который у меня есть в
constants.QRCodePublicCodeLength
- алгоритм, который у меня есть в
constants.QRCodeAlgorithmV1
- тип пользователя, который у меня есть в
constants.UserTypeAdmin
иconstants.UserTypeMember
Было бы очень приятно иметь возможность встроить эти константы в теги полей, чтобы для всего был действительно один источник истины, но я не знаю, возможно ли это в Go.
Могу ли я использовать константы в определениях тегов полей структуры?
Ответ №1:
Могу ли я использовать константы в определениях тегов полей структуры?
Нет, это невозможно.