使用 fmt.Sprintf 兼容语法的格式化错误
提供错误版本。新接受 fmt.Sprintf 类似参数,自定义函数可以定义如下:
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }</code>
但是,此实现遇到一个问题,即可变参数 a 被视为单个数组参数,从而导致格式问题。
要解决为此,有必要确保 a 被解释为可变数量的参数。这可以通过利用三点符号来实现...,确保 fmt.Sprintf 知道 a 参数的可变参数性质:
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }</code>
通过将三点添加到 a 参数,自定义 NewError 函数现在可以使用 fmt.Sprintf 兼容语法正确格式化错误消息。
以上是如何使用与 error.New 兼容的 fmt.Sprintf 语法?的详细内容。更多信息请关注PHP中文网其他相关文章!