实现错误版本。接受与 fmt.Sprintf 相同参数的版本。 fmt.Sprintf,可以使用 NewError 函数,其定义如下:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }
但是,该函数无法正常工作,因为 a 中的可变数量的参数在 NewError 中变成了单个数组参数,导致 Sprintf 仅填写格式字符串中的单个参数。
要解决此问题,NewError 中的最终参数应使用 ... 语法标记为可变数量的参数:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }
这允许 fmt.Sprintf 将 a 解释为可变数量的参数。
以上是如何在自定义'errors.New”实现中将变量参数传递给'fmt.Sprintf”?的详细内容。更多信息请关注PHP中文网其他相关文章!