Funciones con múltiples valores de retorno en Go
Clase 13 de 28 • Curso de Go
Contenido del curso
- 8

Uso de la sentencia switch en Go para selección condicional
07:16 - 9

Declaración y uso básico de arreglos en Go
06:56 - 10

Creación y uso de slices dinámicos en Go
08:26 - 11

Mapas en Go: creación, acceso y manipulación de datos clave-valor
09:38 - 12

Cómo crear y usar funciones personalizadas en Go
07:09 - 13

Funciones con múltiples valores de retorno en Go
07:43 - 14

Funciones variádicas en Go para múltiples parámetros
07:11 - 15

Funciones recursivas en Go para cálculos matemáticos
06:12 - 16

Punteros en Go para optimizar rendimiento del sistema
05:20 - 17

Runas y caracteres Unicode en Go: optimización de memoria
06:41 - 18

Declaración y uso de estructuras de datos en Go
09:07 - 19

Implementación de enumeradores en Go para controlar estados
09:32
- 20

Errores personalizados en Go para mejor depuración
08:25 - 21

Go routines y channels: programación asíncrona en Go
10:53 - 22

Operador select para controlar Go routines y canales en Go
06:44 - 23

Implementación de timeouts en Go con select y time.After
05:50 - 24

Implementación práctica de workers con canales y goroutines en Go
09:43
¿Sabías que en Go puedes retornar múltiples valores desde una sola función? Esta particularidad del lenguaje Go brinda flexibilidad y claridad en el manejo de datos. Aunque otros lenguajes también ofrecen esta opción a través de estructuras como tuplas o arreglos, Go destaca por incorporarlo directamente. Veamos cómo implementarlo fácilmente.
¿Para qué sirve retornar múltiples valores desde una función en Go?
A veces necesitamos obtener más de un resultado en una sola llamada a una función. Por ejemplo, devolver dos mapas con diferentes nombres y apellidos puede hacerse de manera sencilla en Go. Esto evita la necesidad de ejecutar múltiples métodos o bucles.
¿Cómo declarar funciones para múltiples retornos?
En Go, declarar funciones que retornan varios valores se realiza especificando los tipos deseados al declarar la función. Observa este ejemplo sencillo:
func valoresMultiples(nombreUno string, nombreDos string, apellido string) (map[string]string, map[string]string) {
mapaUno := make(map[string]string)
mapaDos := make(map[string]string)
mapaUno[nombreUno] = apellido
mapaDos[nombreDos] = apellido
return mapaUno, mapaDos
}
Con esta función claramente definida, ahora puedes obtener múltiple información en una sola interacción.
¿Cómo invocar una función que retorna varios resultados?
Llamar una función con múltiples retornos es igual de sencillo, basta con asignar sus retornos a variables separadas por comas, así:
mapaPrimerNombre, mapaSegundoNombre := valoresMultiples("Amin", "Miranda", "Espinoza")
fmt.Println(mapaPrimerNombre)
fmt.Println(mapaSegundoNombre)
Esto imprimirá los mapas con nombres y apellidos de manera inmediata, práctica y eficiente.
¿Qué sucede si quiero ignorar un valor devuelto?
Para ignorar valores que no necesitamos, Go utiliza un guión bajo (_). Esto permite seleccionar sólo aquellos datos realmente útiles para tu lógica de programación:
_, mapaSegundoNombre := valoresMultiples("Amin", "Miranda", "Espinoza")
fmt.Println(mapaSegundoNombre)
Con esto, únicamente recuperas el segundo mapa.
¿Tienes más ideas para probar?
La implementación es sencilla: prueba ahora y crea tus propias funciones que concatenen cadenas de los nombres de tus familiares. ¡Anímate a experimentar y profundizar en esta útil característica de Go! Nos encantaría saber qué te parece esta opción y cómo la estás utilizando.