首页 >后端开发 >Golang >如何使用与 error.New 兼容的 fmt.Sprintf 语法?

如何使用与 error.New 兼容的 fmt.Sprintf 语法?

Barbara Streisand
Barbara Streisand原创
2024-11-05 06:00:03904浏览

How can I use fmt.Sprintf-compatible syntax with errors.New?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn