programacion-parametros-funcion

Qué son los parámetros de una función

Los parámetros o argumentos en las funciones de programación son valores que se pasan a una función desde fuera de ella y que la función recibe y puede usar y procesar.

Recordemos que una función es un fragmento de código independiente que realiza una tarea. Para ello puede recibir una serie de inputs, y tener un output.

programacion-funcion

Varios inputs, un único output

Los parámetros son los inputs que puede recibir la función. Son una herramienta muy potente que nos permite que las funciones sean mucho más reusables (que si no existieran).

En general, los parámetros de una función tienen la siguiente pinta.

function miFuncion(parametro1, parametro2, parametro3) 
{
   // cuerpo de la función
}

Los parámetros pueden ser de diferentes tipos de datos en función de lenguaje que estemos usando, como números, cadenas, objetos, o colecciones

Ejemplos de parámetros en funciones en distintos lenguajes

Vamos a ver ejemplos de cómo definir una función en distintos lenguajes, que reciba parámetros. Para el ejemplo vamos a hacer una función suma.

function suma(a, b) 

Básicamente queremos una función que reciba dos números como parámetros, calcula su suma, y luego haría algo con ellos (el “algo que hacer” lo omitimos para el ejemplo, porque lo importante ahora son los parámetros).

Es una función muy sencilla, que seguramente no tenga sentido ni definir en un programa real. Pero que nos viene bien para ilustrar la sintaxis de los parámetros

Así se haría un ejemplo en C, C++, C# o Java. En este caso, los parámetros se ponen entre paréntesis en la definición de la función separados por comas. Al ser un lenguaje fuertemente tipado, es necesario especificar el tipo de cada parámetro, que en nuestro ejemplo es int.

// Definición de la función
void suma(int a, int b) {
  int resultado = a + b;
  // aquí haríamos algo con resultado, como mostrarlo por pantalla
}

// llamar a la funcion
suma(3, 5);

La sintaxis en JavaScript es similar, los parámetros se indican entre paréntesis en la definición, separados por comas. Sin embargo, al ser un lenguaje de tipado dinámico, no es necesario indicar los tipos de los parámetros.

// Definición de la función
function suma(a, b) {
  let resultado = a + b;
  // aquí haríamos algo con resultado, como mostrarlo por pantalla
}

// llamar a la funcion
suma(3, 5);

En el caso, por ejemplo, de TypeScript la sintaxis es similar a JavaScript. Pero, TypeScript es tipado, por lo que nuevamente es necesario indicar los tipos. En este caso, se ponen a continuación del nombre de la variable, separados con : .

// Definición de la función
function suma(a: number, b: number) {
  let resultado = a + b;
  // aquí haríamos algo con resultado, como mostrarlo por pantalla
}

// llamar a la funcion
suma(3, 5);

En el caso de Python, vemos que es muy parecido a los anteriores. Python es un lenguaje de tipado dinámico, por lo que nuevamente no es necesario indicar los tipos de los parámetros.

# Definición de la función
def suma(a, b):
  resultado = a + b
  # aquí haríamos algo con resultado, como mostrarlo por pantalla

#llamar a la funcion
suma(3, 5)

Por poner un ejemplo de lenguaje algo más “bizarro”, así luciría una función en SQL. Aparte de que la sintaxis es algo horrible, básicamente, los parámetros de la función se indican nuevamente entre paréntesis, indicando nombre de la variable y su tipo.

CREATE FUNCTION suma(@a INT, @b INT)
BEGIN
    DECLARE @resultado INT;
    SET @resultado = @a + @b;
	' aquí haríamos algo con resultado, como mostrarlo por pantalla  
END;

Como vemos, aparte de las diferencias de sintaxis entre lenguajes, y de que algunos requieren indicar el tipo de los parámetros y otros no, la definición y el concepto es el mismo en todos los lenguajes.

Diferencia entre argumento y parámetro

El concepto de argumento y parámetro están muy relacionados. Tanto que, en vuestro día a día, usaréis ambos términos casi como sinónimos.

No obstante, en realidad, no son exactamente lo mismo. Vamos a verlo:

  • Los parámetros son los variables que define la función (en el ejemplo a y b)
  • Los argumentos son los valores concretos que pasamos a la función en una invocación (en el ejemplo 3 y 5)

Es decir, los parámetros son “los huecos” que proporciona la función, y los argumentos “lo que metemos en esos huecos”, en cada una de las invocaciones.

Tampoco es que sea muy importante. Pero hablar bien nunca está de más 😉

Buenas prácticas Consejos

Es importante tener en cuenta que una función no debería tener un número excesivo de parámetros. Si una función tiene demasiados parámetros, puede resultar difícil de entender y mantener.

Se recomienda que si una función tiene más de tres o cuatro parámetros, es mejor considerar pasar una agrupación de elementos como parámetro.

Por ejemplo, si imaginemos una función que imprime un documento en PDF, y que recibe un montón de opciones

function PrintPDF(documento, landscape, papersize, orientation, singleface, ...) {
}

Probablemente quede más limpio si envolvemos todas las opciones en una agrupación con todas las opciones

function PrintPDF(documento, opciones) {
}