¿Qué es una función en la programación?
¿Se encuentra a menudo copiando y pegando su código para reutilizarlo en diferentes secciones de su programa?
Si es así, es posible que desee considerar el uso de funciones. Las funciones son una característica muy poderosa de los lenguajes de programación. Pueden hacer que el código sea más eficiente, más fácil de leer y elegante.
¿Qué es una función?
Una función es un bloque de código que realiza una tarea. Se puede llamar y reutilizar varias veces. Puede pasar información a una función y esta puede devolver información. Muchos lenguajes de programación tienen funciones integradas a las que puede acceder en su biblioteca, pero también puede crear sus propias funciones.
Cuando llama a una función, el programa pausará el programa actual y ejecutará la función. La función se leerá de arriba a abajo. Una vez que se completa la función, el programa continúa ejecutándose donde se había detenido. Si la función devolvió un valor, ese valor se usará donde se llamó a la función.
¿Cómo se escribe una función?
Hay muchas formas diferentes de escribir funciones. La sintaxis exacta dependerá del lenguaje en el que esté programando. Mostraremos ejemplos en Python, JavaScript y C ++ para demostrar una variedad de sintaxis de programación.
Funciones nulas
El primer tipo de función que veremos es una función vacía. Esto simplemente significa que la función no devuelve un valor. Las funciones nulas se utilizan para completar un conjunto de instrucciones. En estos ejemplos, la función que escribimos se llama helloFunction . El propósito de la función es generar "Hola mundo".
SUGERENCIA: asigne nombres a las funciones que expliquen lo que hacen. Será más fácil administrar las funciones y leer el código a medida que su programa se vuelva más complejo.
Pitón
def helloFunction():
print("Hello World")
helloFunction()
La palabra clave def se usa en Python para definir y crear una función. A continuación, está el nombre de la función. Las instrucciones de la función siguen en la siguiente línea después de los dos puntos. El espacio en blanco es importante en Python, así que asegúrese de aplicar sangría a todo el código que desea que ejecute su función. En el ejemplo anterior, la función ejecuta una línea de código.
Sus agudos ojos pueden haber notado que print () también es una función, pero se llama de manera diferente a nuestra función. Mantenga ese pensamiento ahora, exploraremos las funciones y los parámetros más adelante.
JavaScript
function helloFunction(){
alert("Hello World!");
}
helloFunction();
En JavaScript, la función de palabra clave se utiliza para crear funciones. A continuación, tenemos el nombre de la función. Cualquier código que se encuentre entre las llaves se ejecuta cuando se llama a la función.
El espacio en blanco no es importante en JavaScript, pero se acostumbra sangrar el código en la función. La sangría hace que el código sea más fácil de leer, lo cual es muy importante a medida que sus programas se vuelven más complejos.
Nota: Al igual que print () en el ejemplo anterior, alert () también es una función.
C ++
#include <iostream>
using namespace std;
void helloFunction(){
cout << "Hello World!";
}
int main(){
helloFunction();
return 0;
}
Las funciones se crean de forma diferente en C ++. En lugar de una palabra clave para definir una función, la primera palabra describe el tipo de datos que devolverá la función. En este caso, nuestra función no devuelve ningún dato, por lo que los datos son nulos. A continuación, tenemos el nombre de la función. Al igual que en JavaScript, todo el código entre llaves se ejecuta cuando se llama a la función. También de manera similar a JavaScript, los espacios en blanco no afectan la función, pero es una buena práctica.
¿Viste otra función en el código C ++? Sí, main () es una función. Cuando ejecuta un programa en C ++, llama automáticamente a la función principal. Cuando la función principal se completa con éxito, devuelve 0 cuando sale del programa para indicar que no hubo errores al ejecutar el programa.
Funciones que requieren valores
Las funciones vacías son excelentes si descubre que está escribiendo el mismo fragmento de código una y otra vez. Pero pueden ser limitantes. Son estáticos y no cambian. Siempre completan las mismas instrucciones. Una forma de aumentar su utilidad es pasar diferentes valores a la función.
Habrá notado que los corchetes seguían los nombres de todas nuestras funciones. Entre paréntesis, podemos declarar que se necesitan datos para ejecutar nuestra función. Entonces podemos usar los datos pasados a nuestra función en la función. Echemos un vistazo a los ejemplos anteriores nuevamente, pero esta vez pasemos la frase que queremos que salga.
Pitón
def helloFunction(newPhrase):
print(newPhrase)
helloFunction("Our new phrase")
Ahora, entre corchetes, nuestra función declara que necesita una variable para ejecutarse. Hemos nombrado la variable newPhrase y ahora podemos usarla en nuestra función. Cuando llamamos a la función, necesitamos pasar la información solicitada colocándola entre corchetes. Se realizaron los mismos cambios en JavaScript.
JavaScript
function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction("Our new phrase");
C ++
#include <iostream>
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction("Our new Phrase");
return 0;
}
Nuestra función C ++ requería un poco más de información. Sabemos que su función quiere datos de cadena, pero eso no es lo suficientemente bueno para C ++. Cuando crea su función, debe especificar qué tipo de datos requiere su función. Si no envía el tipo correcto de datos, la función creará un error.
Esto puede parecer un poco molesto, pero los lenguajes estrictos a menudo pueden ahorrarle dolores de cabeza. Si escribe una función en JavaScript que requiere un número entero, pero el número se envía como una cadena, puede crear un error que es muy difícil de rastrear.
Funciones que devuelven un valor
La capacidad de función final que cubriremos es la devolución de datos. Esto es particularmente valioso cuando desea modificar los datos antes de usarlos. Aunque podría escribir eso en línea, si usa los mismos cálculos muchas veces, como convertir imperial a métrico, podría tener más sentido escribirlo como una función. Nuestro ejemplo será más sencillo. Nuestra función requerirá dos enteros y devolverá la suma.
Pitón
def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))
En este ejemplo, nuestra función requiere dos variables en lugar de una. Lo indicamos separando nuestros nombres de variables con una coma. La palabra clave return le dice a la función que devuelva los siguientes datos, en este caso, 2 + 4 o 6. Llamamos a la función dentro de la función print () .
Una vez que nuestro programa llegara a esa línea, se habría detenido, habría ejecutado nuestra función y luego habría continuado como si añadir Función (2, 4) fuera en realidad solo el valor devuelto 6.
JavaScript
El código JavaScript es muy similar al código Python. La principal diferencia es que la función se llama en una alerta.
function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));
C ++
#include <iostream>
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}
El código C ++ se ejecuta de manera similar, pero como de costumbre, requiere un poco más de información. Primero, tenemos que decir qué tipo de datos devolverá nuestra función. Verá que void se ha cambiado a int . Esto significa que en lugar de no devolver ningún dato, nuestra función devolverá un número entero. Más allá de eso, el código es similar al código que ya hemos explorado.
Administre sus funciones
Una cosa divertida de las funciones es que las funciones pueden llamar a otras funciones. ¡Incluso pueden llamarse a sí mismos! Pero un gran poder conlleva una gran responsabilidad. No te vuelvas loco creando código con funciones que llaman a otras funciones que llaman aún más funciones.
Como se mencionó, cada vez que se llama a una función, el programa se detiene mientras ejecuta la función. Esto significa que el programa se mantiene en la memoria activa. Si llama a varias funciones más sin completarlas, está utilizando más memoria activa. Si no tiene cuidado, su programa puede salirse de control.