«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как упростить проверку структуры в Go: идиоматический подход против «go-валидатора»?

Как упростить проверку структуры в Go: идиоматический подход против «go-валидатора»?

Опубликовано 9 ноября 2024 г.
Просматривать:540

How to Simplify Struct Validation in Go: Idiomatic Approach vs. \

Проверка структур в Go

Проверка правильности значений структур — важнейшая задача при разработке программного обеспечения. При работе с многочисленными небольшими структурами проверка каждого поля по отдельности может оказаться затруднительной. Давайте рассмотрим идиоматический подход и альтернативное решение для проверки структур.

Идиоматическая проверка

Приведенный пример представляет собой распространенный подход к проверке структур. Каждое поле проверяется индивидуально с помощью методов структуры. Однако этот метод становится утомительным по мере роста количества полей или структур.

Альтернативное решение

Сообщество Go разработало различные пакеты для упрощения процесса проверки. Одним из таких пакетов является популярный go-validator (https://github.com/go-validator/validator).

Используя этот пакет, вы можете определить правила проверки для каждого поля, используя теги внутри структуры. определение. Затем валидатор автоматически проверяет значения на соответствие определенным правилам.

Пример

Рассмотрим следующую структуру с правилами проверки:

import "github.com/go-validator/validator"

type Event struct {
    Id     int    `validator:"min=1"`
    UserId int    `validator:"min=1"`
    Start  string `validator:"datetime"`
    End    string `validator:"datetime"`
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3