Valores de retorno con nombre
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 57 de 109.
En Go, puedes nombrar tus valores de retorno en las declaraciones de funciones. Esto hace que tu código sea más legible y te permite retornar simplemente usando una sentencia return simple.
Crea una función con valores de retorno con nombre:
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // retorno "naked"
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}La salida es la misma que antes:
7 ÷ 3 = 2 with remainder 1Los valores de retorno con nombre se inicializan con sus valores cero y pueden ser asignados directamente en el cuerpo de la función.
Desafío
PrincipianteEn este desafío, practicarás el uso de valores de retorno con nombre en las funciones de Go.
Completa la función getPersonInfo que devuelve el nombre, la edad y si una persona es estudiante. La función ya tiene parámetros de retorno con nombre, pero necesitas asignarles valores.
La función debe devolver los valores predefinidos para una persona llamada 'Alex' que tiene 25 años y es estudiante.
Hoja de referencia
En Go, puedes nombrar tus valores de retorno en las declaraciones de funciones para una mejor legibilidad y usar una sentencia return simple:
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // retorno "desnudo"
}Los valores de retorno con nombre se inicializan con sus valores cero y pueden ser asignados directamente en el cuerpo de la función.
Pruébalo tú mismo
package main
import "fmt"
// Esta función utiliza valores de retorno con nombre
func getPersonInfo() (name string, age int, isStudent bool) {
// TODO: Asignar valores a las variables de retorno con nombre
// name debe ser "Alex"
// age debe ser 25
// isStudent debe ser true
// La sentencia "return" sin argumentos devolverá los valores de retorno con nombre
return
}
func main() {
name, age, isStudent := getPersonInfo()
fmt.Printf("Name: %s\nAge: %d\nStudent: %t\n", name, age, isStudent)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones