Go esencial

Cómo trabaja Go con los closures

¡Prueba gratis durante 10 días

nuestros 1220 cursos !

Prueba gratis Mostrar modalidades de suscripción
Un closure es una técnica que permite acceder variables internas dentro de una función, otra forma de verlo es crear una función dentro de otra función para realizar un proceso encapsulado dentro de la misma llamada.
05:39

Transcripción

En Go, nosotros podemos crear funciones dentro de funciones. Podemos crear lo que se llama un "Closure". Revisemos cómo se realiza esto dentro de una aplicación. Acá, creo una función y a esta función la llamamos, por ejemplo, ganado. Dentro de ganado, aceptamos un valor. En este caso, definimos número, que será el argumento que vamos aceptar y lo defino con un número entero. En este caso una "int". Una vez que he definido los valores que voy a aceptar, defino también los valores que voy a retornar. En este caso, son dos valores. Defino un valor que es un entero, y otro que es una cadena de texto o "string." También, empiezo a invocar esta función desde el "print" para desplegarla en pantalla. Vamos a llamarla, ganado, y le asignamos un número, por ejemplo, uno. Damos a guardar, y tenemos que devolver los valores tal y como lo hemos indicado dentro de la función. Asi que creamos acá un valor, ponemos "return." Para que se adapte a los valores que hemos definido, ponemos, por ejemplo, uno, coma y voy a devolver una cadena de textos que es vacas. Guardamos y estoy devolviendo un entero y una cadena de texto. Guardamos y ejecutamos esta aplicación. Y vemos que estamos devolviendo: uno y vacas. Le agregamos aquí un espacio para que sea más fácil de leer. Y ahora, modifico mi aplicación, meto una función dentro de otra función. ¿Cómo lo hago? Vengo acá y creo una variable, que en este caso no declaro, sino que utilizo la sintaxis abreviada. La creamos como vacas, y en esta función utilizo la sintaxis abreviada, y la voy a definir como una función. En este caso, lo que hago es que creo lo que se llama una función anónima. Una función que no tiene nombre, pero que igualamos a esta variable. Inmediatemente, dentro de Go, se asigna el resultado de esta variable al tipo de dato que trabajamos acá. Además de eso, le asignamos el tipo de dato que va a retornar esta función y que también va a heredar esta variable. Lo definimos en este caso como un entero o int, y hacemos que este función anónima esté dentro de la función principal, recordemos que vacas se encuentra dentro de ganado. Tomamos un valor. Los valores dentro de las funciones tienen contextos, por ejemplo, si tengo un valor creado como este número, no lo puedo llamar desde fuera de la función, por ejemplo, acá. Esto no lo puedo invocar, porque las variables tienen contexto. En este caso, el contexto de la variable número será solo dentro de esta función. En teoría, no podríamos utilizarla en ninguna otra función, pero como estamos creando a través de esta sintaxis una función dentro de otra, podemos realizar un proceso mientras estamos dentro de una función sin tener que salir de ella. Realizamos el proceso que estoy diciendo, y retorno o hacer un "return." En este caso, devolvemos el valor del número de nuevo, que es una variable que se encuentra en el contexto de nuestra función, pero accedemos a ella porque estamos dentro de este contexto y simplemente realizamos una operación básica, la vamos a multiplicar por diez. Asi que cualquiera que sea el número que el usuario haya insertado dentro de ganado, nuestra función vacas lo procesará y nos devolverá un valor. Ahora reemplazamos este uno por vacas, y tenemos lo que se llama un "closure," ejecutándose dentro de la función, y tenemos un proceso que se está realizando dentro de nuestra función y es básicamente una función dentro de otra. Guardamos, y en este caso, tomó cincuenta y nos muestra un error de sintaxis. Debemos tener en cuenta que vacas, como lo despliego acá, no es una variable. Vacas como lo estamos definiendo con esta sintaxis es una función. Así que tenemos que llamarlo siempre con paréntesis. Damos a guardar, ya tenemos arreglada nuestra sintaxis, y, de nuevo, estamos invocando vacas, que es una función dentro de otra, y estamos llamando el valor, en este caso de texto para mostrar cuántas vacas nos muestra la función ganado. Guardamos, ejecutamos la aplicación y tenemos acá el resultado, diez vacas, Incluso podemos hacer una pequeña suma de los elementos que están acá, y como estamos trabajando dentro de números enteros, podemos realizar una operación. Estamos realizando una operación a una función que está dentro de otra. y, además, la estamos mezclando con una cadena de texto. Esas son algunas de las cosas interesantes que podemos hacer con este lenguaje Go.

Go esencial

Aprende los elementos esenciales de Go, el lenguaje de código abierto con un rendimiento similar a C, lo que lo ha hecho muy popular para la creación de aplciaciones web.

2:45 horas (29 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:16/03/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.