首页  >  文章  >  后端开发  >  如何正确格式化 Go 中变量参数的错误?

如何正确格式化 Go 中变量参数的错误?

Patricia Arquette
Patricia Arquette原创
2024-11-06 03:39:02784浏览

How to Correctly Format Errors with Variable Arguments in Go?

格式化错误:错误的替代方案。带有变量参数的新功能

为了增强错误处理,用户可能会寻求创建错误的自定义版本。新接受多个参数的函数,模仿 fmt.Sprintf 的行为。尽管已经做出了尝试,但在正确解释自定义函数中的变量参数方面仍存在挑战。本文探讨了该解决方案,并提供了有关实现强大的错误格式化机制的指导。

其中一种尝试涉及定义一个函数,如下所示:

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

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