Funciones en GO

Las funciones en GO son bloques de código reutilizables que encapsulan una tarea específica. Son herramientas fundamentales para organizar tu código, hacerlo más legible y eficiente.

En este artículo, exploraremos en profundidad el mundo de las funciones en GO, desde su definición hasta su uso con ejemplos prácticos.

Definición de una función:

Las funciones se definen usando la palabra clave func seguida del nombre de la función, la lista de parámetros (entre paréntesis) y el tipo de valor de retorno (si lo hay).


func nombreFuncion(parametro1 tipo1, parametro2 tipo2) tipoRetorno {
  // Bloque de código de la función
  return valorRetorno
}

Lenguaje del código: Go (go)

Tipos de funciones:

  • Funciones sin parámetros: No reciben ningún valor de entrada.

func saludar() {
  fmt.Println("¡Hola!")
}

Lenguaje del código: Go (go)
  • Funciones con parámetros: Reciben uno o más valores de entrada.

func sumar(a int, b int) int {
  return a + b
}

Lenguaje del código: Go (go)
  • Funciones con valor de retorno: Devuelven un valor al final de su ejecución.

func obtenerNombre() string {
  return "Bard"
}

Lenguaje del código: Go (go)
  • Funciones sin valor de retorno: No devuelven ningún valor.

func imprimirMensaje(mensaje string) {
  fmt.Println(mensaje)
}

Lenguaje del código: Go (go)

Llamada a una función:

Para ejecutar una función, se utiliza su nombre seguido de paréntesis, donde se pasan los valores de los parámetros (si los hay).


saludar()
resultado := sumar(2, 3)
nombre := obtenerNombre()
imprimirMensaje("Hola a todos!")

Lenguaje del código: Go (go)

Parámetros nombrados:

Los parámetros pueden tener nombres que ayudan a identificar su significado.


func calcularArea(base float64, altura float64) float64 {
  return base * altura
}

area := calcularArea(base: 5, altura: 10)

Lenguaje del código: Go (go)

Valores de retorno múltiples:

Las funciones pueden devolver múltiples valores utilizando una tupla.


func obtenerUsuario(id int) (nombre string, email string) {
  // ...
  return nombre, email
}

nombre, email := obtenerUsuario(10)

Lenguaje del código: Go (go)

Funciones variádicas:

Permiten recibir un número variable de argumentos.


func imprimirNumeros(numeros ...int) {
  for _, numero := range numeros {
    fmt.Println(numero)
  }
}

imprimirNumeros(1, 2, 3, 4, 5)

Lenguaje del código: Go (go)

Funciones recursivas:

Se llaman a sí mismas para resolver un problema.


func factorial(numero int) int {
  if numero == 0 {
    return 1
  }
  return numero * factorial(numero-1)
}

resultado := factorial(5)

Lenguaje del código: Go (go)

Funciones anónimas:

Se definen y se ejecutan al mismo tiempo.


func() {
  fmt.Println("Función anónima")
}()

Lenguaje del código: Go (go)

Conclusión:

Las funciones son herramientas poderosas que te permiten escribir código modular, eficiente y fácil de entender. Dominar las diferentes características de las funciones en GO te ayudará a crear programas más robustos y escalables.

Recuerda:

  • La práctica es la mejor forma de aprender a usar las funciones en GO.
  • Experimenta con diferentes tipos de funciones y casos de uso.
  • Divide tu código en funciones pequeñas y manejables.
  • Documenta tus funciones para que sean más fáciles de entender.