Para implementar una versión de errores.Nueva que acepta los mismos parámetros que fmt.Sprintf, se puede usar la función NewError, que se define de la siguiente manera:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }
Sin embargo, esta función no funciona correctamente porque el número variable de argumentos en a se convierte en un único parámetro de matriz en NewError, lo que hace que Sprintf complete solo un único parámetro en la cadena de formato.
]Para solucionar este problema, el parámetro final en NewError debe marcarse como un número variable de argumentos con la sintaxis...:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }
Esto permite que fmt.Sprintf interprete un número variable de argumentos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3