Nombrar los valores devueltos de una función en Golang

Un valor devuelto ayuda a retener el resultado final de la función después de que realiza las instrucciones dadas en su cuerpo. Las funciones en Golang exhiben variedad en los valores de retorno y dependen del programador para decidir si nombrarlas o no.
Golang introduce un concepto de » Retorno desnudo » que permite el uso de la palabra clave de retorno sin indicar explícitamente los valores de retorno en el cuerpo de la función, siempre que los valores de retorno se declaren en el encabezado de la función. Sin embargo, el nombre de la variable debe ser el mismo que el definido en el encabezado de la función.

package main
  
import "fmt"
  
// This function returns a string message by taking a parameter
// "name" of string type. The Naked return concept is being
// displayed here since the return statement not specify the return
// of message variable. The returning of the message variable
// has already being defined 
func greeting(name string) (message string) {
  
    // Since the variable is already 
    // defined in function variable
    // there is no need to declare it 
    // again in the function body
    // using " := " operator.
  
    // The name "message" must be same as 
    // the one declared in the function header.
    message = "Hello, " + name
      
    // This statement returns message variable
    // without explicitly stating its name
    return 
}
  
// Driver code
func main() {
  
    // The return value of greeting 
    // function is stored in msg variable
    msg := greeting("GFG")
      
    // Printing output
    fmt.Println(msg) 
}

Producción:

Hello, GFG

Además, la función puede devolver una variable sin especificar su nombre en el encabezado de la función, sino solo su tipo de datos.

package main
  
import "fmt"
  
// This function returns a string datatype
// Since the return variable is not 
// defined in the function header,
// There is an explicit need to specify
// the variable to return
  
func greeting(name string) string {
    message := "Hello, " + name
    return message
}
  
// Driver code
func main() {
    msg := greeting("GFG")
    fmt.Println(msg)
}

Producción:

Hello, GFG

Una función también puede devolver múltiples valores y recibir múltiples parámetros. Sin embargo, para trabajar con una función que devuelve múltiples valores, la cantidad de variables que devuelve la función debe ser igual a la cantidad de variables que contienen los valores devueltos cuando finaliza la ejecución de la función.

package main
  
import "fmt"
  
// The below function returns four
// variables after performing operations
// on the two parameters that were passed to it
  
func operations(a, b int) (sum, diff, prod, div int) {
  
    // The four variables to be returned are defined here
  
    sum, diff, prod, div = a+b, a-b, a*b, a/b
  
    // returning the above-defined four variables.
    return
}
  
// Driver code
func main() {
    a, b := 5, 3
  
    // Since the function returns four values,
    // Four receiver variables must be used.
    sum, diff, prod, div := operations(a, b)
    fmt.Println(sum, diff, prod, div)
}

Producción:

8 2 15 1

Publicación traducida automáticamente

Artículo escrito por TanmayThaakur y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *