ホームページ >バックエンド開発 >Golang >Go で構造体を効率的に検証するにはどうすればよいですか?

Go で構造体を効率的に検証するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 02:08:29666ブラウズ

How Can I Efficiently Validate Structs in Go?

慣用的に構造体を検証する

構造体の有効性を判断するには、その各フィールドの正確性を検証する必要があります。このプロセスは、特に多数のフィールドを持つ構造体の場合、退屈になる可能性があります。

提供されたコード スニペットに示されているように、従来のアプローチでは各フィールドを個別に検証する必要があり、フィールドが無効な場合はエラーが発生します。この方法は効果的ではありますが、面倒な場合があります。

代替ソリューション

go-validator パッケージ (https://github.com/go-validator/validator)構造体の検証に対する構造化されたアプローチを提供します。注釈を通じてフィールド検証ルールを表現することでプロセスを簡素化します。

たとえば、パッケージの README で提供されている例では、注釈を使用して NewUserRequest 構造体に次の制約を指定しています:

  • Username 3 ~ 40 文字の英数字を含める必要があります。
  • 名前は空であってはなりません。
  • 年齢は 21 歳以上である必要があります。
  • パスワードは 8 文字以上である必要があります。

バリデーター パッケージは、これらのアノテーションに基づいて検証を実行する便利なメソッド (validator.Validate) を提供します。有効性を示すブール値と、検証が失敗した場合のエラーのリストの両方を返します。

以上がGo で構造体を効率的に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。