Devuelve los valores como argumentos a funciones multi-argumentos
cuando se trata de funciones que devuelven múltiples valores, es posible usar estos valores como argumentos de entrada a otras funciones. Sin embargo, ciertas limitaciones se aplican cuando la función de recepción tiene parámetros adicionales.
Considere el siguiente código:
func returnIntAndString() (i int, s string) {...}
func doSomething(msg string, i int, s string) {...}
si intentamos aprobar los valores de retorno de returnIntandString () a dosomthingtetting () directamente:
doSomething("message", returnIntAndString())
Go se quejará con la quejada Errores: múltiple returnIntAntAndString () en contexto de valor único No hay suficientes argumentos en llamado a dosomething ()
multiple-value returnIntAndString() in single-value context not enough arguments in call to doSomething()Esto se debe a que Go solo permite pasar un solo valor como argumento a una función, incluso si el valor de retorno de la función anterior obtiene valores múltiples.
para resolver este problema, tiene dos opciones:
[&]
i, s: = returnIntandString ()
dosomthing ("mensaje", i, s)
i, s := returnIntAndString()
doSomething("message", i, s)
escriba el resultado struct {
Yo int
String s
}
FUNC ReturnIntandString () resultado {...}
Res: = returnIntandString ()
dosomthing ("mensaje", res.i, res.s)
Recuerde, las reglas específicas de Go no permiten parámetros adicionales junto con una función de valor de retorno de valor múltiple al asignar argumentos. Si no se cumplen las condiciones específicas que se describen en la especificación del idioma, debe emplear una de las soluciones proporcionadas.
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