Argumentos o parámetros?

A menudo me encuentro confundido con la forma en que se usan los términos ‘argumentos‘ y ‘parámetros‘. Parecen ser utilizados indistintamente en el mundo de la progtwigción.

¿Cuál es la convención correcta para su uso?

Los parámetros son las cosas definidas por las funciones como entrada, los argumentos son las cosas pasadas como parámetros.

void foo(int bar) { ... } foo(baz); 

En este ejemplo, bar es un parámetro para foo . baz es un argumento pasado a foo .

Un parámetro es una variable en la statement de una función:

 functionName(parameter) { // do something } 

Un argumento es el valor real de esta variable que pasa a la función:

 functionName(argument); 

Para el usuario1515422, un ejemplo muy concreto que muestra la diferencia entre los parámetros y argumentos:

Considera esta función:

 int divide(int numerator, int denominator) { return numerator/denominator; } 

Tiene dos parámetros : numerator y denominator , establecido cuando está definido. Una vez definidos, los parámetros de una función son fijos y no cambiarán.

Ahora considere una invocación de esa función:

 int result = divide(8, 4); 

En este caso, 8 y 4 son los argumentos pasados ​​a la función. El parámetro del numerator se establece en el valor del argumento 8 , y el denominator se establece en 4 . Luego la función se evalúa con los parámetros establecidos en el valor de los argumentos. Puedes pensar que el proceso es equivalente a:

 int divide() { int numerator = 8; int denominator = 4; return numerator/denominator; } 

La diferencia entre un parámetro y un argumento es similar a la diferencia entre una variable y su valor. Si escribo int x = 5; , la variable es x y el valor es 5 . La confusión puede surgir porque es natural decir cosas como “x es cinco”, como abreviación de “La variable x tiene el valor 5”, pero es de esperar que la distinción sea clara.

¿Eso aclara las cosas?

Los argumentos son lo que tienes cuando invocas una subrutina. Los parámetros son a lo que está accediendo dentro de la subrutina.

 argle(foo, bar); 

foo y bar son argumentos.

 public static void main(final String[] args) { args.length; } 

args es un parámetro.

Hay una buena sección en el artículo de parámetro de Wikipedia sobre este tema.

En resumen, el parámetro es el nombre formal definido por la función y el argumento es el valor real (como 5) o una cosa (como variable) pasada a la función.

Aunque Wikipedia no es una fuente autorizada, hace un trabajo decente para explicar los términos .

Supongo que se podría decir que los parámetros son para los argumentos que son las clases para instancias de objetos …

Cuando defines una función como:

 MyFunction(param1,param2) { print parameter1, parameter } 

Usted establece los parámetros cuando define la función. Cuando llamas a la función de esta manera:

 MyFunction('argument1', 'argument2'); 

Establece los valores de los parámetros a los argumentos que aprobó. Los argumentos son lo que pones en la pregunta cuando la llamas. Espero que haya ayudado.

Simplemente no hay grandes diferencias. Si profundizamos en esto, podemos identificar la diferencia. Principalmente sabemos que Argumento / Parámetro / firma son todos iguales.

Básicamente, el parámetro define el tipo de datos que estamos pasando. Donde el argumento defina los datos / variables reales que estamos pasando.

Ejemplo de parámetro: –

 int add(int a,int b){ //Here a and be both can treated as Parameter return a+b; } 

Ejemplo de argumento:

 int return_result=add(3,4); // Here 3 and 4 both can treated as Argument or int x=3,y=4; int return_result=add(x,y);// Here x and y both can treated as Argument 

En la mayoría de los casos, un procedimiento necesita cierta información sobre las circunstancias en las que se lo ha llamado. Un procedimiento que realiza tareas repetidas o compartidas usa información diferente para cada llamada. Esta información consiste en variables, constantes y expresiones que pasa al procedimiento cuando lo llama.

Para comunicar esta información al procedimiento, el procedimiento define un parámetro, y el código de llamada pasa un argumento a ese parámetro. Puedes pensar en el parámetro como un lugar de estacionamiento y el argumento como un automóvil. Así como diferentes automóviles pueden estacionarse en el lugar de estacionamiento en diferentes momentos, el código de llamada puede pasar un argumento diferente al mismo parámetro cada vez que llama al procedimiento.

Parámetros

Un parámetro representa un valor que el procedimiento espera que pase cuando lo llame. La statement del procedimiento define sus parámetros.

Cuando define un procedimiento de Función o Sub , especifica una lista de parámetros entre paréntesis inmediatamente después del nombre del procedimiento. Para cada parámetro, especifique un nombre, un tipo de datos y un mecanismo de aprobación (ByVal o ByRef). También puede indicar que un parámetro es opcional, lo que significa que el código de llamada no tiene que pasarle un valor.

El nombre de cada parámetro sirve como una variable local dentro del procedimiento. Utiliza el nombre del parámetro de la misma manera que usas cualquier otra variable.

Argumentos

Un argumento representa el valor que pasa a un parámetro de procedimiento cuando llama al procedimiento. El código de llamada suministra los argumentos cuando llama al procedimiento.

Cuando llama a un procedimiento de Función o Sub , incluye una lista de argumentos entre paréntesis inmediatamente después del nombre del procedimiento. Cada argumento corresponde al parámetro en la misma posición en la lista.

En contraste con la definición del parámetro, los argumentos no tienen nombres. Cada argumento es una expresión, que puede contener cero o más variables, constantes y literales. El tipo de datos de la expresión evaluada normalmente debe coincidir con el tipo de datos definido para el parámetro correspondiente, y en cualquier caso debe ser convertible al tipo de parámetro.

De hecho, tanto el parámetro como el argumento son diferentes tipos de parámetros. Esos son

1) Parámetros formales: las variables aparecen en las definiciones de función / subrutina

por ej. (en Java)

 public void foo(Integer integer, String... s2) 

Aquí, tanto el entero como s2 son parámetros formales o parámetros que hablan poco.

2) Parámetros o argumentos reales: las variables aparecen en subrutinas al llamar al

subrutina ya definida

por ej. (en Java) supongamos que si la función “foo” reside en el objeto “testObject”,

 testObject.foo(new Integer(1), "test") 

Entonces, las variables en la definición de la función se llaman parámetros formales o simplemente parámetros y variables mientras que los métodos de llamada se llaman parámetros o argumentos reales. Espero que ayude.

Piénsalo como álgebra básica. X es el parámetro que debe completar y el número que coloca dentro es el argumento. Entonces, si tienes una ecuación como X + 2, X es tu parámetro, y cualquier número que cambies para X se conoce como los argumentos. Entonces, si usa esa ecuación, suplementa 1 para x, obtiene 1 + 2. Eso significa que 1 es un argumento, suministrado al parámetro de X.

Igualmente, si tiene una función como dosomething (“This”), su definición sería dosomething (string parametername), pero “This” sería el argumento real que se está suministrando al parámetro, aquí named parametername.

De la manera más sencilla de verlo, el parámetro es lo que el argumento completa, y el argumento puede ser cualquier cantidad de cosas permitidas por ese parámetro.

Entonces, es una relación muchos a uno entre Parámetros y argumentos, ya que puede tener un parámetro que puede tener muchos argumentos válidos, como nuestra ecuación X + 1 anterior. X puede ser cualquier número conocido, y todos son válidos.

Una variable es una ubicación de almacenamiento y un nombre simbólico asociado (un identificador) que contiene datos, un valor.

Un parámetro es una variable que se pasa a una función.

Un argumento es datos (un valor) pasados ​​a una función.

 $variable = 'data/value'; function first($variable){ ... } function second('data/value'){ ... } function third(16){ ... } 

En la función primero estamos pasando un parámetro.

En la función segunda y tercera estamos pasando argumentos.