parameters - valor - ¿Cuál es la diferencia entre un argumento y un parámetro?
paso de parametros por valor (30)
Cuando se habla verbalmente sobre métodos, nunca estoy seguro de usar la palabra argumento o parámetro o algo más. De cualquier manera, las otras personas saben lo que quiero decir, pero ¿qué es correcto y cuál es la historia de los términos?
Soy programador de C #, pero también me pregunto si las personas usan términos diferentes en diferentes idiomas.
Para que conste, soy autodidacta sin experiencia en informática. (Por favor, no me digas que lea el Código completo porque estoy pidiendo esto en beneficio de otras personas que aún no tienen una copia del maravilloso libro de Steve McConnell ).
Resumen
El consenso general parece ser que está bien usar estos términos indistintamente en un entorno de equipo. Excepto quizás cuando estás definiendo la terminología precisa; luego también puede usar "argumento / parámetro formal " y "argumento / parámetro real " para desambiguar.
¡Sí! Los parámetros y argumentos tienen diferentes significados, que pueden explicarse fácilmente de la siguiente manera:
Los parámetros de función son los nombres que figuran en la definición de función.
Los argumentos de la función son los valores reales pasados a (y recibidos por) la función.
Ambos no tienen mucha diferencia en el uso en C, ambos términos se usan en la práctica. La mayoría de los argumentos se utilizan a menudo con funciones. El valor pasado con la declaración de llamada a la función se llama el argumento, y el parámetro sería la variable que copia el valor en la definición de la función (llamado como parámetro formal).
int main ()
{
/* local variable definition */
int a = 100;
int b = 200;
int ret;
/* calling a function to get max value */
ret = max(a, b);
printf( "Max value is : %d/n", ret );
return 0;
}
/* function returning the max between two numbers */
int max(int num1, int num2)
{
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
En el código anterior num1
y num2
son parámetros formales y a
y b
son argumentos reales.
Cuando creamos el método (función) en Java, el método como este ...
data-type name of the method (data-type variable-name)
En el paréntesis, estos son los parámetros, y cuando llamamos al método (función) pasamos el valor de este parámetro, que se llama los argumentos.
De acuerdo con el libro de Joseph Alabahari "C # en pocas palabras" (C # 7.0, p. 49):
static void Foo (int x)
{
x = x + 1; // When you''re talking in context of this method x is parameter
Console.WriteLine (x);
}
static void Main()
{
Foo (8); // an argument of 8.
// When you''re talking from the outer scope point of view
}
En algunos idiomas humanos (afaik italiano, ruso) los sinónimos se usan ampliamente para estos términos.
- parámetro = parámetro formal
- argumento = parámetro actual
En mi universidad los profesores usan ambos tipos de nombres.
Debe volver a lo básico. Tanto los constructores como los métodos tienen parámetros y argumentos. Mucha gente incluso llama a los constructores un tipo especial de métodos. Así es como se utiliza un método para declarar los parámetros :
type name(parameters){
//body of method
}
Y así es como se declaran parámetros un constructor:
classname(parameters){
//body
}
Ahora veamos un código de ejemplo con el que calculamos el volumen de un cubo:
public class cuboid {
double width;
double height;
double depth;
cuboid(double w,double h,double d) {
//Here w,h and d are parameters of constructor
this.width=w;
this.height=h;
this.depth=d;
}
public double volume() {
double v;
v=width*height*depth;
return v;
}
public static void main(String args[]){
cuboid c1=new cuboid(10,20,30);
//Here 10,20 and 30 are arguments of a constructor
double vol;
vol=c1.volume();
System.out.println("Volume is:"+vol);
}
}
Así que ahora entiendes que cuando llamamos a un constructor / método en un objeto en algún lugar más adelante en el código, pasamos argumentos y no parámetros. Los parámetros de aquí están limitados al lugar donde se define el objeto lógico, pero los argumentos entran en juego cuando un físico el objeto se crea realmente.
Digamos que eres una aerolínea. Tú construyes un avión. Instala asientos en ella. Luego, llenas el avión con pasajeros y lo envías a algún lugar. Los pasajeros (o, mejor dicho, alguna versión alterada espacio-temporal del mismo) desembarcan. Al día siguiente, reutiliza el mismo avión y los mismos asientos, pero esta vez con diferentes pasajeros.
El avión es tu función.
Los parámetros son los asientos.
Los argumentos son los pasajeros que van en esos asientos.
El uso de los términos parámetros y argumentos ha sido mal utilizado de alguna manera entre programadores e incluso autores. Cuando se trata de métodos, el término parámetro se usa para identificar los marcadores de posición en la firma del método, mientras que el término argumentos son los valores reales que se pasan al método.
MCSD Cerfification Toolkit (Examen 70-483) Programación en C # , 1ª edición, Wrox, 2013
Escenario de caso del mundo real
// Define a method with two parameters
int Sum(int num1, int num2)
{
return num1 + num2;
}
// Call the method using two arguments
var ret = Sum(2, 3);
En la edición, a menudo me desanimo cómo las personas olvidan: los lenguajes de la estructura se basan en lenguajes naturales.
En inglés
Un "parámetro" es un marcador de posición. Establecen el formato de respuesta, en lenguaje hablado. Por definición, es parte de la llamada, limitando la respuesta.
Un "argumento" es una posición que está siendo considerada. Usted discute su opinión: considera un argumento.
Diferencia principal
El papel temático de un argumento es el agente. El rol temático del parámetro es el destinatario.
Interacciones
Piense en el argumento como la parte masculina, haciendo del parámetro la parte femenina. El argumento entra en el parámetro.
Uso
Normalmente se usa un parámetro en las definiciones. Un argumento se utiliza generalmente en invocaciones.
Preguntas
Termina la oración para que sea menos disonante.
(A) Hablando de una definición:
- ¿Qué argumento se utilizará []?
- ¿Qué [] tendrá este parámetro []?
(B) Hablando de una invocación:
- ¿Qué parámetro usará, []?
- ¿Qué [] será [] este parámetro?
Respuestas
(UNA)
- Con / in / against / con este parámetro
- argumento (s) ... toma
(SEGUNDO)
- y cuales son algunos argumentos de ejemplo
- argumento (s) ... utilizado en / en / en contra / con
Superposiciones
Como puede imaginar, después de responder: en el lenguaje hablado, ¡estas palabras a veces producen respuestas idénticas!
Entonces, como regla general:
Generalmente, si alguien quiere información sobre parámetros, quiere saber más sobre el tipo, el nombre de la variable, etc. Pueden confundirse si solo da argumentos de ejemplo.
- Generalmente, si alguien quiere información de argumentos, quiere saber qué valor le pasó a una función o sus parámetros.
Este ejemplo podría ayudar.
int main () {
int x = 5;
int y = 4;
sum(x, y); // **x and y are arguments**
}
int sum(int one, int two) { // **one and two are parameters**
return one + two;
}
Lógicamente hablando, en realidad estamos hablando de lo mismo. Pero creo que una simple metáfora sería útil para resolver este dilema.
Si las metáforas pueden llamarse varios puntos de conexión, podemos equipararlos a puntos de conexión en una pared. En este caso podemos considerar los parámetros y argumentos de la siguiente manera;
Los parámetros son los enchufes del punto de conexión que pueden tomar varias formas diferentes. Pero solo ciertos tipos de enchufes los encajan.
Los argumentos serán los enchufes reales que se enchufarían en los puntos / enchufes para activar ciertos equipos.
Lo pensé bien y me di cuenta de que mi respuesta anterior era incorrecta. Aquí hay una definición mucho mejor
{ Imagine una caja de huevos: Un paquete de enlaces de salchichas: Y una sirvienta } Estos representan elementos de una función necesaria para la preparación llamada: (use cualquier nombre: digamos que cocinar es el nombre de mi función).
Una criada es un método.
(Debe ___ llamar o pedir este método para hacer el desayuno) (El acto de hacer el desayuno es una función llamada Cocinar ) _
Los huevos y las salchichas son parámetros:
(porque la cantidad de huevos y la cantidad de salchichas que quieres comer es __variable_.) _
Tu decisión es un argumento:
Representa el __Valor_ del número elegido de huevos y / o salchichas que está cocinando ._
{ Mnemónico }
_ "Cuando llamas a la doncella y le pides que prepare el desayuno, te ____ discute sobre cuántos huevos y salchichas deberías comer. Le preocupa tu colesterol" __
(Los argumentos, entonces, son los valores para la combinación de Parámetros que ha declarado y decidido pasar a su Función)
Los parámetros de una función / método le describen los valores que utiliza para calcular su resultado.
Los argumentos de a son los valores asignados a estos parámetros durante una llamada particular de la función / método.
Los parámetros formales para una función se enumeran en la declaración de la función y se utilizan en el cuerpo de la definición de la función. Un parámetro formal (de cualquier tipo) es un tipo de espacio en blanco o marcador de posición que se rellena con algo cuando se llama a la función.
Un argumento es algo que se utiliza para rellenar un parámetro formal. Cuando escribe una llamada de función, los argumentos se enumeran entre paréntesis después del nombre de la función. Cuando se ejecuta la llamada a la función, los argumentos se insertan para los parámetros formales.
Los términos llamada por valor y llamada por referencia se refieren al mecanismo que se utiliza en el proceso de conexión. En el método de llamada por valor, solo se usa el valor del argumento. En este mecanismo de llamada por valor, el parámetro formal es una variable local que se inicializa con el valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se utiliza la variable completa. En el mecanismo de llamada por referencia, la variable argumento se sustituye por el parámetro formal, de modo que cualquier cambio que se realice en el parámetro formal realmente se realice en la variable argumento.
Los parámetros son las variables recibidas por una función. Por lo tanto, son visibles en la declaración de la función. Contienen el nombre de la variable con su tipo de datos. Los argumentos son valores reales que se pasan a otra función. Es por eso que podemos verlos en función llamada. Son solo valores sin su tipo de datos.
Los términos son algo intercambiables. La distinción descrita en otras respuestas se expresa más adecuadamente con los términos parámetro formal para el nombre utilizado dentro del cuerpo de la función y parámetro para el valor proporcionado en el sitio de la llamada ( el argumento formal y el argumento también son comunes).
También tenga en cuenta que, en matemáticas, el término argumento es mucho más común y el parámetro generalmente significa algo muy diferente (aunque el parámetro en una ecuación paramétrica es esencialmente el argumento de dos o más funciones).
Los tutoriales Java de Oracle definen esta distinción de esta manera: "Los parámetros se refieren a la lista de variables en una declaración de método. Los argumentos son los valores reales que se pasan cuando se invoca el método. Cuando invoca un método, los argumentos utilizados deben coincidir con los parámetros de la declaración. en tipo y orden ".
Una discusión más detallada de los parámetros y argumentos: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
O incluso más simple ...
Argumentos en!
¡Parámetros fuera!
O puede ser aún más fácil de recordar así, en caso de argumentos opcionales para un método:
public void Method(string parameter = "argument")
{
}
parameter
es el parámetro, su valor, "argument"
es el argumento :)
Ok, seamos realistas: para todos los efectos, son prácticamente lo mismo .......... ok, pero para los pedantes podría haber una diferencia técnica.
Un "parámetro" es una cosa muy general, pero un argumento es una cosa muy específica. Genial, gracias, así que eso es realmente útil. hmmm: tal vez un ejemplo está en orden.
Una explicación simple
Tomemos un ejemplo: tengo una máquina. Así es como funciona: pongo las cosas en la máquina en un extremo, y en el otro extremo, sale un nuevo "producto" de la máquina. ¿Qué entra en esta máquina? Cualquier cosa. ¿Qué sale? Bueno, una versión refinada de lo que entra. Por ejemplo, puedo poner harina y azúcar en un extremo de esta máquina, y del otro viene: un pastel. tienes la idea
Ahora diferentes máquinas tienen diferentes reglas. Una máquina en particular solo puede aceptar gasolina (sin plomo) como entrada. Se puede decir que estas máquinas aceptan parámetros de tipo: gasolina.
Un ejemplo
¿Qué es entonces un argumento? Un argumento es un ejemplo particular y específico de lo que se pone en la máquina. Supongamos que mi máquina toma a la gente como una entrada (las personas serían el parámetro de esta máquina ) y supongamos que esta máquina convierte a esas personas en personas que no son personas malas (¡qué máquina más maravillosa!). ¿Qué es entonces una discusión? El argumento será la persona en particular que realmente se pone en la máquina. por ejemplo, si George Bush es puesto en la máquina, entonces el argumento sería George Bush. Si Kim Kardiashian estuviera allí, también sería una discusión. Entonces, el parámetro sería la gente como un concepto abstracto, pero el argumento siempre sería una persona particular con un nombre particular que se coloca en la máquina.
Un ejemplo mas
por ejemplo, un método (es decir, una máquina en particular que convierte entradas en salidas) puede aceptar un entero como parámetro. Supongamos que el entero 5 se "pasa a" la función (es decir, supongamos que coloca el número 5 en la máquina). En este caso, el entero "5" sería el argumento, y el "parámetro" aceptado por este método sería de tipo entero.
Esa es la diferencia. Sencillo.
Espero que esto ayude. Si estás confundido, solo comenta y trataré de arreglarlo.
Recuerde siempre que: - Los argumentos se pasan mientras se reciben los parámetros.
Se explica perfectamente en Parámetro (programación de computadora) - Wikipedia
En términos generales, un parámetro es un tipo y un argumento es una instancia.
En la definición de la función f(x) = x*x
la variable x
es un parámetro; en la función llamada f(2)
el valor `` 2 es el argumento de la función.
En la programación de computadoras , comúnmente se usan dos nociones de parameter , y se conocen como parámetros y argumentos, o más formalmente como un parámetro formal y un parámetro real .
Por ejemplo, en la definición de una función como
y = f(x) = x + 2,
x es el parámetro formal (el parámetro ) de la función definida.
Cuando la función se evalúa para un valor dado, como en
f(3): or, y = f(3) = 3 + 2 = 5,
es el parámetro real (el argumento ) para evaluación por la función definida; es un valor dado (valor real) que se sustituye por el parámetro formal de la función definida. (En el uso casual, los términos parámetro y argumento se pueden intercambiar inadvertidamente y, por lo tanto, se usan incorrectamente).
Sencillo:
- P ARÁMETRO → P LACEHOLDER (Esto significa que un marcador de posición pertenece al nombre de la función y se puede usar en el cuerpo de la función)
- A RGUMENT → A CTUAL VALUE (Esto significa un valor real que se pasa por la función que llama)
Un argumento es una instanciación de un parámetro.
Un parámetro es algo que debe completar cuando llama a una función. Lo que pones en él es el argumento.
Simplemente establecido: el argumento entra en el parámetro, un argumento es el valor del parámetro.
Un poco más de información en: http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments
Un parámetro es una variable en una definición de método. Cuando se llama a un método, los argumentos son los datos que usted pasa a los parámetros del método.
public void MyMethod(string myParam) { }
...
string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
Ya existe una entrada de Wikipedia sobre el tema (ver Parameter ) que define y distingue los términos parámetro y argumento . En resumen, un parámetro es parte de la firma de función / procedimiento / método y un argumento es el valor real proporcionado en tiempo de ejecución y / o sitio de llamada para el parámetro.
El artículo de Wikipedia también establece que los dos términos a menudo se usan como sinónimos (especialmente cuando se razona informalmente sobre el código):
Aunque a los parámetros también se les conoce comúnmente como argumentos, los argumentos se consideran más como valores reales o referencias asignadas a las variables de parámetros cuando se llama a la subrutina en tiempo de ejecución.
Dada la siguiente función de ejemplo en C que agrega dos enteros, x
e y
se denominarán sus parámetros:
int add(int x, int y) {
return x + y;
}
En un sitio de llamada que utiliza add
, como el ejemplo que se muestra a continuación, 123 y 456 se denominarán los argumentos de la llamada.
int result = add(123, 456);
Además, algunas especificaciones de lenguaje (o documentación formal) eligen usar un parámetro o argumento exclusivamente y usar adjetivos como formal y real, en lugar de cambiar la ambigüedad entre los dos casos. Por ejemplo, la documentación de C / C ++ a menudo se refiere a parámetros de función como argumentos formales y argumentos de llamada a función como argumentos reales . Para ver un ejemplo, consulte " Argumentos formales y reales " en la Referencia del lenguaje de Visual C ++ .
Parámetros y Argumentos
Todos los diferentes términos que tienen que ver con parámetros y argumentos pueden ser confusos. Sin embargo, si tiene en cuenta algunos puntos simples, podrá manejar estos términos fácilmente.
- Los parámetros formales para una función se enumeran en la declaración de la función y se utilizan en el cuerpo de la definición de la función. Un parámetro formal (de cualquier tipo) es un tipo de espacio en blanco o marcador de posición que se rellena con algo cuando se llama a la función.
- Un argumento es algo que se utiliza para rellenar un parámetro formal. Cuando escribe una llamada de función, los argumentos se enumeran entre paréntesis después del nombre de la función. Cuando se ejecuta la llamada a la función, los argumentos se insertan para los parámetros formales.
- Los términos llamada por valor y llamada por referencia se refieren al mecanismo que se utiliza en el proceso de conexión. En el método de llamada por valor, solo se usa el valor del argumento. En este mecanismo de llamada por valor, el parámetro formal es una variable local que se inicializa con el valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se utiliza la variable completa. En el mecanismo de llamada por referencia, la variable argumento se sustituye por el parámetro formal, de modo que cualquier cambio que se realice en el parámetro formal realmente se realice en la variable argumento.
Fuente: Absolute C ++, Walter Savitch
Es decir,
El parámetro es variable en la declaración de función.
El argumento es el valor real de esta variable que se pasa a la función.
Los parámetros son variables que se utilizan para almacenar los datos que se pasan a una función para que la función los use. Los argumentos son los datos reales que se pasan a una función cuando se invoca:
// x and y are parameters in this function declaration
function add(x, y) {
// function body
var sum = x + y;
return sum; // return statement
}
// 1 and 2 are passed into the function as arguments
var sum = add(1, 2);