Funciones en Go

Francisco Suarez
GDSC Patagonia

--

Las funciones tanto en Golang como en otros lenguajes, son bloques de codigo que podemos utilizar/reutilizar a lo largo del programa.

Por ejemplo en Go contamos con librerías que traen funciones predefinidas y son usadas para realizar diferentes acciones, tal vez la mas conocida y mas usada es fmt la cual nos permite imprimir o consumir datos desde la consola.

El dia de hoy veremos cómocrear funciones propias, antes que nada tenemos que distinguir dos tipos de estas, funciones con parámetros los cuales nos permiten realizar envio de información hacia la función y sin parámetros las cuales nos permite ejecutar procesos entre otras cosas mas.

Definir funciones en Golang

Para comenzar lo primero que tendremos que hacer es crear un archivo main.gocon su correspondiente package y la función main o función principal.

Recuerden lo siguiente función main

package mainimport "fmt"func main() {}

Por sobre la función main empezaremos a declarar nuestras funciones, para esto lo que haremos es usar la palabra reservada funcseguida del nombre que queremos darle a la función, más parentesis y llaves.

En general la estructura básica de una función sin parámetros es la siguiente

func NOMBRE () {}

En este tutorial crearemos una función llamada saludarMundo la cual imprimirá la conocida frase Hola Mundo!

func saludarMundo(){
fmt.Println("Hola mundo!")
}

Una vez esta función procederemos a llamarla dentro de nuestro main, y pasaremos a tener un código igual al siguiente.

package mainimport "fmt"func main() {
saludarMundo()
}
func saludarMundo(){
fmt.Println("Hola mundo!")
}

Luego de tener todo esto y guardar nuestro archivo, procederemos a ejecutar el mismo, para ello usaremos el siguiente comando.

go run main.go

Obteniendo como resultado por la consola.

Hola mundo!

Si observamos el código completo, nos daremos cuenta que tenemos una función llamada main()la misma es la encargada de decirle al compilador que aqui es donde inicia el programa, es la función que busca el compilador para iniciar el proceso de compilación.

Ahora si recordamos, mas arriba dijimos que las funciones tienen parámetros,pero, ¿Que son los parámetros?, un parámetro básicamente es un dato que le proveemos a la función para que lo utilice y haga algo, por ejemplo podríamos pasarle un nombre y que en lugar de decir Hola mundo diga Hola Juan o cualquier otro nombre que nosotros indiquemos.

func saludar(nombre string) {
fmt.Print("Hola ", nombre)
}

Llamando esta función en el main y pasando por parámetroun string obtendremos como resultado en la consola el mensaje.

package mainimport "fmt"func main() {
saludar("Fran")
saludar("Pedro")
}
func saludar(nombre string) {
fmt.Print("Hola ", nombre)
}

Salida

Hola Fran
Hola Pedro

El hecho de poder recibir valores por parámetros nos hace tener una mayor versatilidad a la hora de programar, dado que podemos armar una función que reciba N cantidad de valores y los manipule, como por ejemplo sumar dos o más valores.

Ahora bien, en estos casos tenemos que especificar un valor de retorno, algo que la función debe devolver, ahí es donde ingresa la palabra return.

func sumar(n1 int, n2 int) int {
return n1 + n2
}

Notemos que con el return la estructura cambia un poco.

func NOMBRE(PARAMETROS) TIPO_DE_RETORNO{
CUERPO/RETURN
}

Entonces ahora podremos, guardar el valor en una variable o directamente imprimir por consola desde el main.

func main() {
fmt.Println(sumar(10, 10))
resultado := sumar(10, 23)
fmt.Println(resultado)
}

Salida

20
33

De esta manera, podremos ejecutar sumar() miles de veces en diferentes partes del código sin la necesidad de estar repitiendo la operación de suma y así poder reutilizar código a lo largo del programa.

Espero que les sirva y puedan seguir aprendiendo Go/Golang!

Muchas gracias por leer!

Instagram | Twitter GDSC Patagonia | Twitter Francisco

--

--

Francisco Suarez
GDSC Patagonia

📚Computer Science Student 🚀 JavaScript Developer 🐱‍🚀 @reactjs @nodejs 🐱‍🏍 GDSC Lead🛸 and Contributor at MDN 🔥