use a single instance of Validate, it caches struct info
var validate *validator.Validate
func main() {
validate = validator.New()
через var validate *validator.Validate мы получаем что-то вроде синглтон-экземпляра, верно? А как это работает, что погуглить?
> Синглтон Да вроде просто переменную области видимости уровня пакета.
Да, вроде так, но что значит "single instance"?
Виталий, спасибо, я тупанул, все понятно.
Синглтон — это когда каждый New() возвращает один и тот же объект. Это такой “хак” конструктора.
Ну вот, я в их New залез и ни чего похожего на синглтон там не заметил, а выглядит что для этой штуки синглтон был бы уместен, так как она может пригодиться в разных пакетах. > Это просто конструктор. да, не успел написать что ни чего такого там нет.
А зачем глобальную переменную юзать?
Единый валидатор для всего приложения может быть уместен, так как там оптимизации через кэш. Я бы через DI этот вопрос решал, но их пример меня смутил - "может так носят?".
Обсуждают сегодня