"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo pasar múltiples valores de retorno como parámetros a una función en GO?

¿Cómo pasar múltiples valores de retorno como parámetros a una función en GO?

Publicado el 2025-04-13
Navegar:517

How to Pass Multiple Return Values as Arguments to Functions in Go?

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:

[&]
    Valores de retorno: [y asignan los valores de retorno: [&] Valores a variables temporales y pasarlas individualmente a dosomething ().
  1. i, s: = returnIntandString () dosomthing ("mensaje", i, s)

    i, s := returnIntAndString()
    doSomething("message", i, s)
  2. en la función returnIntAndString (), devuelve una estructura nombrada con campos para cada valor. Luego, pase la estructura a dosomnething ().
  3. 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. 
Último tutorial Más>

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