Saltar al contenido principal
Publicado el

Funciones en Go

Compartir:

Introducción

En el mundo de la programación, las funciones son bloques de código reutilizables que realizan una tarea específica. Go, al ser un lenguaje moderno y potente, ofrece una variedad de características relacionadas con las funciones que lo hacen único.

Declaración de Funciones

En Go, una función se declara usando la palabra clave func, seguida del nombre de la función, los parámetros (si los hay) y el tipo de retorno.

func nombreDeFuncion(parametro1 tipo1, parametro2 tipo2) tipoRetorno {
  // Cuerpo de la función
}

Por ejemplo:

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

Retornos Múltiples

Una característica interesante de Go es la capacidad de retornar múltiples valores desde una función.

func divisionYResto(a int, b int) (int, int) {
  return a / b, a % b
}

Esta función retorna tanto el cociente como el resto de la división.

Funciones Anónimas y Closures

Go soporta funciones anónimas, que pueden formar closures. Las funciones anónimas son útiles cuando se quiere definir una función inline sin darle un nombre.

func() {
  fmt.Println("¡Esto es una función anónima!")
}()

Un closure es una función que tiene acceso a las variables de su entorno externo:

func contador() func() int {
  cuenta := 0

  return func() int {
    cuenta++
    return cuenta
  }
}

func main() {
  miContador := contador()
  fmt.Println(miContador()) // Imprime 1
  fmt.Println(miContador()) // Imprime 2
}

Parámetros Variádicos

Go también permite usar parámetros variádicos, lo que significa que puedes pasar un número indefinido de parámetros a una función. Se definen usando ... antes del tipo del parámetro.

func sumatoria(numeros ...int) int {
  total := 0

  for _, num := range numeros {
    total += num
  }

  return total
}

Conclusión

Las funciones en Go son versátiles y potentes, y permiten a los programadores crear código limpio, eficiente y reutilizable. Ya sea aprovechando los retornos múltiples, usando closures o manejando parámetros variádicos, dominar las funciones en Go es esencial para una programación eficaz.

Happy coding!