Curso Go: Parte 3

En esta tercera parte del blog vamos a aprender a crear funciones para que podamos crear aplicaciones mas complejas y modulares pudiendo así dar vida a nuestras ideas y nuevos proyectos.

En la entrega anterior aprendimos operaciones básicas, usaremos estas operaciones dentro de funciones así que te recomendamos ver la parte anterior para obtener el máximo potencial

https://blog.ironchip.net/2019/04/03/02-curso-go-funciones-basicas/

Las funciones son una parte esencial de Go así que vamos a ello!

Definición de funciones

Para crear funciones lo haremos siguiendo la siguiente estructura

func nombre(var_entrada)var_salida{

codigo_funcion

}

Podemos ver ejemplos de estas declaraciones en las lineas 9 y 14

Go nos permite que una funcion nos devuelva mas de una variable para lo cual usaremos (tipo1,tipo2,tipo3)

En la funcion de la linea 14 podemos observar un caso de uso con mas de una variable de salida frente a la funcion de la linea 9 que solo devuelve 1.

Paso de parámetros

En este ejemplo vamos a observar diferentes formas de pasar parámetros a las funciones, por valor o referencia .

En la linea 7 observamos una funcion en la que pasamos un array de enteros y una posicion se multiplica x2.

En la linea 11 pasamos el valor de un entero a una funcion que lo multipla x2, por otro lado en la linea 15 tenemos la misma funcion pero en este caso hemos pasado el entero por referencia por lo que si ejecutamos la aplicacion podemos ver que en el primer caso la variable original no cambia su valor y en el segundo si.

Error return

En este caso vamos a ver como hacer que una funcion nos devuelva un error segun determinemos.

En la linea 8 tenemos la función raíz cuadrada a la que le estamos pasando un valor float64 y nos devuelve otro float64 y un error.

Dentro de esta función definimos que si el valor que queremos calcular su raíz es negativo nos devuelva como resultado 0 y un error indicando que el valor pasado es negativo.

En el caso que el numero no sea negativo devolvemos la raiz del valor y como el error nulo.

Defer

En este ejemplo observaremos un uso de la sentencia defer .

defer funcion()

Al usar defer la funcion que  la sigue no se ejecutara hasta que el resto de funciones no hayan terminado su ejecución.

Con esto nos aseguraremos que la primera función llamada con defer sera la ultima en ser ejecutada.

Puede ser de gran utilidad por ejemplo a la hora de trabajar con ficheros, usaremos defer para cerrar el archivo.

Challenge: Defer

Escribe una función que obtenga a partir de una url devuelva el Content-type de la respuesta HTTP.

La función deberá devolver un error si no puede realizar un GET, también devolverá un error si no encuentra el Content-Type.

Usaremos defer para aseguranos que el body se cierra.

Para las llamadas http usaremos el paquete net/http

Solucion:

Conclusión

En esta tercera hemos aprendido a modular nuestros programas y trabajar con errores con los que profundicaremos mas adelante siendo asi capaces d mejorar nuestras aplicaciones.

En la siguiente parte de esta serie podremos aprender a trabajar con objetos y poco a poco poder realizar cualquier proyecto en este lenguaje de programación.

Nos vemos!!


Miguel Martinez

Miguel Martinez

Desarrollador Full Stack. Interés por nuevas tecnologías , desarrollo de software en diversos lenguajes. Ambición por aprender cosas nuevas , trabajo en equipo y junto a ellos sacar nuevos proyectos adelante.

Leave a Reply

Your email address will not be published. Required fields are marked *