ホームページ  >  記事  >  バックエンド開発  >  Go で変数引数を含むエラーを正しくフォーマットするにはどうすればよいですか?

Go で変数引数を含むエラーを正しくフォーマットするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-06 03:39:02784ブラウズ

How to Correctly Format Errors with Variable Arguments in Go?

エラーの書式設定: エラーの代替。変数引数を使用した新規機能

エラー処理を強化するために、ユーザーはエラーのカスタマイズされたバージョンの作成を求める場合があります。新規fmt.Sprintf の動作を模倣する、複数の引数を受け入れる関数。試みは行われてきましたが、カスタム関数内の変数引数を正しく解釈する際に課題が生じます。この記事では、解決策を検討し、堅牢なエラー フォーマット メカニズムの実装に関するガイダンスを提供します。

そのような試みの 1 つは、次のような関数の定義を含みます。

<code class="go">func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a))
}</code>

ただし、このアプローチは、次のことを試みる場合には不十分です。変数引数を fmt.Sprintf に渡すと、引数が単一の配列として扱われます。この問題を解決するには、以下の修正コードに示すように、カスタム関数の変数引数 (a) の後に ... 演算子を使用することが不可欠です。

<code class="go">func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a...))
}</code>

... を使用することで、演算子、fmt.Sprintf は変数引数を正しく解釈し、それに応じて文字列をフォーマットできます。これにより、ユーザーは fmt.Sprintf の強力な書式設定機能を活用するカスタム エラー書式設定関数を作成できるようになります。

以上がGo で変数引数を含むエラーを正しくフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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