fmt.Sprintf 互換構文によるフォーマットされたエラー
エラーのバージョンを提供します。fmt.Sprintf のようなパラメーターを受け入れる Newカスタム関数は次のように定義できます:
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }</code>
ただし、この実装では、可変長引数 a が単一の配列パラメーターとして扱われるという問題が発生し、書式設定で問題が発生します。
解決するにはこのため、 a が可変数の引数として解釈されるようにする必要があります。これは、3 つのドット表記 ... を利用して、fmt.Sprintf が a 引数の可変個引数の性質を確実に認識するようにすることで実現できます。
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }</code>
a 引数に 3 つのドットを追加することで、 、カスタム NewError 関数は、fmt.Sprintf 互換の構文を使用してエラー メッセージを正しくフォーマットできるようになりました。
以上がfmt.Sprintf と互換性のある構文をerrors.Newで使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。