First class functions en Go

0 0 0
                                        


En Go, las funciones son valores de primera clase. Esto significa que se puede hacer con funciones lo mismo que se puede hacer con todos los demás valores: asignar funciones a variables, pasarlas como argumentos a otras funciones o incluso devolver funciones de otras funciones.

Ejemplo:

Los valores de funciones brindan la oportunidad de parametrizar funciones no solo con datos sino también con comportamiento

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Los valores de funciones brindan la oportunidad de parametrizar funciones no solo con datos sino también con comportamiento. En el siguiente ejemplo, se pasa el comportamiento a la función a través del parámetro GreetingFunc:

 En el siguiente ejemplo, se pasa el comportamiento a la función a través del parámetro GreetingFunc:

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

El valor de una variable no inicializada de tipo función es nil. Por lo tanto, llamar a un valor de función nulo provoca panic.

 Por lo tanto, llamar a un valor de función nulo provoca panic

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Los valores de la función se pueden comparar con nil. Esto puede resultar útil para evitar panics innecesarios en el programa.

 Esto puede resultar útil para evitar panics innecesarios en el programa

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Tipos función

Usar valores de funciones es posible gracias a los tipo función o  tipado de función en Go. Un tipo función denota el conjunto de todas las funciones con la misma secuencia de tipos de parámetros y la misma secuencia de tipos de resultados. Los tipos definidos por el usuario se pueden declarar además de los tipos función. Por ejemplo, la función dialog de los ejemplos anteriores se puede actualizar de la siguiente manera:

 Por ejemplo, la función dialog de los ejemplos anteriores se puede actualizar de la siguiente manera:

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Funciones anónimas

Otra herramienta poderosa que está disponible gracias al soporte de funciones de primera clase son las funciones anónimas. Las funciones anónimas se definen en su punto de uso, sin un nombre después de la palabra clave func. Dichas funciones tienen acceso a las variables de la función adjunta que la contiene. Por ejemplo:

Decimos que la función anónima es un cierre de las variables n1 y n2

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Decimos que la función anónima es un cierre de las variables n1 y n2. Los cierres o closures se utilizan ampliamente en programación. Referencia: 

- en.wikipedia.org/wiki/Closure_(computer_programming)

Ejercicio de ejemplo: 

- gist.github.com/zeroidentidad/f5c416412b2e723498caa6c385146b38

zero golang notesDonde viven las historias. Descúbrelo ahora