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

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

Patricia Arquette
リリース: 2024-11-06 03:39:02
オリジナル
851 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート