Qual è la differenza tra un argomento e un parametro?

Quando parli verbalmente di metodi, non sono mai sicuro di usare la parola argomento o parametro o qualcos’altro. In entrambi i casi le altre persone sanno cosa intendo, ma cosa è corretto, e qual è la storia dei termini?

Sono un programmatore C #, ma mi chiedo anche se le persone usano termini diversi in diverse lingue.

Per la cronaca sono autodidatta senza esperienza in Informatica. (Per favore, non dirmi di leggere il codice completo perché lo chiedo a beneficio di altre persone che non hanno già una copia del meraviglioso libro di Steve McConnell .)

Sommario

Il consenso generale sembra essere che sia corretto usare questi termini in modo intercambiabile in un ambiente di squadra. Tranne forse quando stai definendo la terminologia precisa; quindi puoi anche usare “argomento formale / parametro” e “argomento / parametro effettivo ” per disambiguare.

Un parametro è una variabile in una definizione di metodo. Quando viene chiamato un metodo, gli argomenti sono i dati che si passano nei parametri del metodo.

public void MyMethod(string myParam) { } ... string myArg1 = "this is my argument"; myClass.MyMethod(myArg1); 

Il parametro è variabile nella dichiarazione di funzione.

L’argomento è il valore effettivo di questa variabile che viene passato alla funzione.

C’è già una voce di Wikipedia sull’argomento (vedi Parametro ) che definisce e distingue i termini parametro e argomento . In breve, un parametro fa parte della funzione / procedura / firma del metodo e un argomento è il valore effettivo fornito in fase di esecuzione e / o sito di chiamata per il parametro.

L’articolo di Wikipedia afferma anche che i due termini sono spesso usati come sinonimi (specialmente quando si ragiona in modo informale sul codice):

Sebbene i parametri vengano anche comunemente definiti argomenti, gli argomenti vengono considerati più correttamente come valori effettivi o riferimenti assegnati alle variabili di parametro quando la subroutine viene richiamata in fase di esecuzione.

Data la seguente funzione di esempio in C che aggiunge due numeri interi, x e y indicati come parametri:

 int add(int x, int y) { return x + y; } 

In un sito di chiamata che utilizza add , come nell’esempio mostrato di seguito, 123 e 456 vengono indicati come argomenti della chiamata.

 int result = add(123, 456); 

Inoltre, alcune specifiche linguistiche (o documentazione formale) scelgono di usare esclusivamente parametri o argomenti e usano invece aggettivi come formale ed effettivo per disambiguare i due casi. Ad esempio, la documentazione C / C ++ fa spesso riferimento a parametri di funzione come argomenti formali e argomenti di chiamata di funzione come argomenti effettivi . Per un esempio, vedere ” Argomenti formali e reali ” nel riferimento al linguaggio Visual C ++ .

Un parametro è qualcosa che devi compilare quando chiami una funzione. Quello che ci hai messo è l’argomento.

Basta impostare: l’argomento va nel parametro, un argomento è il valore del parametro.

Un po ‘più di informazioni su: http://en.wikipedia.org/wiki/Parameter_(computer_science )#Parameters_and_arguments

Semplice:

  • P ARAMETRO → P LACEHOLDER (Ciò significa che un segnaposto appartiene alla denominazione della funzione e può essere utilizzato nel corpo della funzione)
  • A RGUMENT → A CTUAL VALUE (Questo significa un valore effettivo che viene passato dalla funzione che chiama)

L’uso dei termini parametri e argomenti è stato in qualche modo abusato tra programmatori e persino autori. Quando si tratta di metodi, il termine parametro viene utilizzato per identificare i segnaposto nella firma del metodo, mentre gli argomenti del termine sono i valori effettivi che si passano al metodo.

MCSD Cerfification Toolkit (Esame 70-483) Programmazione in C # , 1a edizione, Wrox, 2013

Scenario del caso reale

 // 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); 

Nel assembly, sono spesso scoraggiato dal modo in cui le persone dimenticano: i linguaggi di struttura sono basati su linguaggi naturali.

In inglese

Un “parametro” è un segnaposto. Impostano il formato della risposta, nella lingua parlata. Per definizione, è parte della chiamata, limitando la risposta.

Un “argomento” è una posizione che viene considerata. Sostieni la tua opinione: consideri un argomento.

Differenza principale

Il ruolo tematico di un argomento è l’agente. Il ruolo tematico del parametro è destinatario.

interazioni

Pensa all’argomento come alla parte maschile, rendendo il parametro la parte femminile. L’argomento entra nel parametro.

uso

Un parametro viene solitamente utilizzato nelle definizioni. Un argomento viene solitamente utilizzato nelle invocazioni.

Domande

Termina la frase per renderla meno dissonante.

(A) Parlando di una definizione:

  1. Quale argomento verrà utilizzato []?
  2. Quale [] sarà questo parametro []?

(B) Parlare di un’invocazione:

  1. Quale parametro userai, []?
  2. Quale [] sarà [] questo parametro?

risposte

(UN)

  1. on / in / contro / con questo parametro
  2. argomento (s) … prendere

(B)

  1. e quali sono alcuni argomenti di esempio
  2. argomento (i) … usato su / in / contro / con

Le sovrapposizioni

Come puoi immaginare, dopo aver risposto: nella lingua parlata, a volte queste parole producono risposte identiche!

Quindi, di regola:

  • Di solito, se qualcuno vuole informazioni sui parametri, vuole saperne di più sul tipo, sul nome della variabile, ecc. Potrebbero diventare confusi se fornisci solo argomenti di esempio.

    • Di solito se qualcuno vuole informazioni sull’argomento, vogliono sapere quale valore si è passato a una funzione o ai suoi parametri.

I parametri di una funzione / metodo descrivono i valori che utilizza per calcolare il risultato.

Gli argomenti di a sono i valori assegnati a questi parametri durante un particolare richiamo della funzione / metodo.

I termini sono in qualche modo intercambiabili. La distinzione descritta in altre risposte è espressa più correttamente con i termini parametro formale per il nome utilizzato all’interno del corpo della funzione e parametro per il valore fornito nel sito di chiamata (anche l’argomento formale e l’ argomento sono comuni).

Si noti inoltre che, in matematica, il termine argomento è molto più comune e il parametro di solito significa qualcosa di molto diverso (sebbene il parametro in un’equazione parametrica sia essenzialmente l’ argomento di due o più funzioni).

Questo esempio potrebbe aiutare.

 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; } 

O potrebbe essere ancora più semplice ricordarlo in questo modo, nel caso di argomenti opzionali per un metodo:

 public void Method(string parameter = "argument") { } 

parameter è il parametro, il suo valore, "argument" è l’argomento 🙂

Diciamo che sei una compagnia aerea. Costruisci un aeroplano. Si installano posti al suo interno. Quindi, si riempie l’aereo con i passeggeri e lo si invia da qualche parte. Scendono i passeggeri (o meglio, qualche versione alterata nello spazio). Il giorno dopo, riutilizzi lo stesso aereo e gli stessi posti, ma questa volta con passeggeri diversi.

L’aereo è la tua funzione.

I parametri sono i posti.

Gli argomenti sono i passeggeri che vanno in quei posti.

Ricorda sempre che: – Gli argomenti vengono passati mentre i parametri vengono ricevuti.

Parametri e argomenti

Tutti i termini diversi che hanno a che fare con parametri e argomenti possono essere fonte di confusione. Tuttavia, se tieni a mente alcuni semplici punti, sarai in grado di gestire facilmente questi termini.

  1. I parametri formali per una funzione sono elencati nella dichiarazione della funzione e vengono utilizzati nel corpo della definizione della funzione. Un parametro formale (di qualsiasi tipo) è un tipo di spazio o segnaposto che viene riempito con qualcosa quando viene chiamata la funzione.
  2. Un argomento è qualcosa che viene utilizzato per inserire un parametro formale. Quando si annota una chiamata di funzione, gli argomenti sono elencati tra parentesi dopo il nome della funzione. Quando viene eseguita la chiamata di funzione, gli argomenti vengono inseriti per i parametri formali.
  3. I termini call-by-value e call-by-reference fanno riferimento al meccanismo utilizzato nel processo di plug-in. Nel metodo call-by-value viene utilizzato solo il valore dell’argomento. In questo meccanismo call-by-value, il parametro formale è una variabile locale inizializzata sul valore dell’argomento corrispondente. Nel meccanismo della chiamata per riferimento, l’argomento è una variabile e viene utilizzata l’intera variabile. Nel meccanismo call-by-reference la variabile argomento viene sostituita al parametro formale in modo tale che qualsiasi modifica apportata al parametro formale venga effettivamente apportata alla variabile argomento.

Fonte: Absolute C ++, Walter Savitch

Questo è,

inserisci la descrizione dell'immagine qui

Un argomento è un’istanza di un parametro.

Sì! Parametri e argomenti hanno significati diversi, che possono essere facilmente spiegati come segue:

Funzione I parametri sono i nomi elencati nella definizione della funzione.

Gli argomenti di funzione sono i valori reali passati a (e ricevuti da) la funzione.

O ancora più semplice …

Argomenti in!

Parametri fuori!

Entrambi non hanno molta differenza nell’uso in C, entrambi i termini sono usati nella pratica. Per lo più gli argomenti sono spesso usati con le funzioni. Il valore passato con la funzione calling statement è chiamato l’argomento, e il parametro sarebbe la variabile che copia il valore nella definizione della funzione (chiamata come parametro formale).

 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; } 

Nel codice precedente, num1 e num2 sono parametri formali e b sono argomenti reali.

Le esercitazioni Java di Oracle definiscono questa distinzione in questo modo: “I parametri si riferiscono all’elenco di variabili in una dichiarazione di metodo Gli argomenti sono i valori effettivi passati quando il metodo viene richiamato. Quando si richiama un metodo, gli argomenti utilizzati devono corrispondere ai parametri della dichiarazione nel tipo e nell’ordine. ”

Una discussione più dettagliata di parametri e argomenti: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

Ok, siamo reali: a tutti gli effetti sono praticamente la stessa cosa ………. ok ma per i pedanti potrebbe esserci una differenza tecnica.

Un “parametro” è una cosa molto generale, ma un argumet è una cosa molto specifica. Bene, grazie – quindi è davvero d’aiuto. hmmm: forse un esempio è in ordine.

Una semplice spiegazione

Facciamo un esempio: ho una macchina. Ecco come funziona: metto le cose nella macchina da una parte e dall’altra parte un nuovo “prodotto” esce dalla macchina. Cosa va in questa macchina? Nulla. Cosa esce? Beh, una versione raffinata di ciò che accade. Ad esempio, posso mettere la farina e lo zucchero in un’estremità di questa macchina, e dall’altra arriva: una torta. hai un’idea.

Ora diverse macchine hanno regole diverse. Una macchina in particolare può accettare solo benzina (senza piombo) come input. Si può dire che queste macchine accettano parametri di tipo: benzina.

Un esempio

Che cos’è quindi un argomento? Un argomento è un esempio particolare e specifico di ciò che viene inserito nella macchina. Supponiamo che la mia macchina consideri le persone come un input (le persone sarebbero il parametro di questa macchina ) e supponiamo che questa macchina trasformi quelle persone in persone che non sono persone cattive (che macchina meravigliosa!). Che cos’è quindi un argomento? L’argomento sarà la persona particolare che viene effettivamente inserita nella macchina. ad esempio, se George Bush è inserito nella macchina, l’argomento sarebbe George Bush. Se Kim Kardiashian fosse presente, sarebbe anche lei una discussione. Quindi il parametro sarebbe la gente come un concetto astratto, ma l’argomento sarebbe sempre una persona particolare con un nome particolare che viene inserito nella macchina.

Un altro esempio

ad esempio un metodo (cioè una macchina particolare che trasforma gli input in output) può accettare un numero intero come parametro. Supponiamo che il numero intero 5 sia “passato” alla funzione (cioè supponiamo di aver inserito il numero 5 nella macchina). In questo caso il numero intero “5” sarebbe l’argomento, e il “parametro” accettato da questo metodo sarebbe di tipo intero.

Questa è la differenza. Semplice.

Spero che aiuti. Se sei confuso basta commentare e cercherò di sistemarlo.

Logicamente parlando, stiamo parlando della stessa cosa. Ma penso che una semplice metafora sarebbe utile per risolvere questo dilemma.

Se le metafore possono essere chiamate punti di connessione diversi, possiamo equipararle a punti di connessione su un muro. In questo caso possiamo considerare parametri e argomenti come segue;

I parametri sono le prese del plug-point che possono assumere varie forms. Ma solo alcuni tipi di spine si adattano a loro.
Gli argomenti saranno le spine effettive che verrebbero inserite nelle prese / prese per triggersre determinate apparecchiature.

Quando creiamo il metodo (funzione) in Java, il metodo come questo ..

data-type name of the method (data-type variable-name)

Tra parentesi, questi sono i parametri, e quando chiamiamo il metodo (funzione) passiamo il valore di questo parametro, che sono chiamati gli argomenti.

Secondo il libro di Joseph Alabahari “C # in a Nutshell” (C # 7.0, pagina 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 } 

In alcuni linguaggi umani (afaik italiano, russo) i sinonimi sono ampiamente usati per questi termini.

  • parametro = parametro formale
  • argomento = parametro attuale

Nei miei professori universitari uso entrambi i tipi di nomi.

Il parametro è variabile nella dichiarazione di funzione.

L’argomento è il valore effettivo di questa variabile che viene passato alla funzione. inserisci la descrizione dell'immagine qui

I parametri sono le variabili ricevute da una funzione. Quindi sono visibili nella dichiarazione della funzione. Contengono il nome della variabile con il loro tipo di dati. Gli argomenti sono valori effettivi che vengono passati ad un’altra funzione. ecco perché possiamo vederli in chiamata di funzione. Sono solo valori senza il loro tipo di dati

I parametri formali per una funzione sono elencati nella dichiarazione della funzione e vengono utilizzati nel corpo della definizione della funzione. Un parametro formale (di qualsiasi tipo) è un tipo di spazio o segnaposto che viene riempito con qualcosa quando viene chiamata la funzione.

Un argomento è qualcosa che viene utilizzato per inserire un parametro formale. Quando si annota una chiamata di funzione, gli argomenti sono elencati tra parentesi dopo il nome della funzione. Quando viene eseguita la chiamata di funzione, gli argomenti vengono inseriti per i parametri formali.

I termini call-by-value e call-by-reference fanno riferimento al meccanismo utilizzato nel processo di plug-in. Nel metodo call-by-value viene utilizzato solo il valore dell’argomento. In questo meccanismo call-by-value, il parametro formale è una variabile locale inizializzata sul valore dell’argomento corrispondente. Nel meccanismo della chiamata per riferimento, l’argomento è una variabile e viene utilizzata l’intera variabile. Nel meccanismo call-by-reference la variabile argomento viene sostituita al parametro formale in modo tale che qualsiasi modifica apportata al parametro formale venga effettivamente apportata alla variabile argomento.

I parametri sono variabili utilizzate per memorizzare i dati passati in una funzione per la funzione da utilizzare. Gli argomenti sono i dati effettivi passati in una funzione quando viene richiamato:

 // 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); 

Ci ho pensato e ho capito che la mia risposta precedente era sbagliata. Ecco una definizione molto migliore

{ Immagina un cartone di uova: un pacco di maglie salsicce: E una cameriera } Questi rappresentano gli elementi di una funzione necessaria per la preparazione chiamata: (usa un nome qualsiasi: diciamo che cucinare è il nome della mia funzione).

Una cameriera è un metodo.

(Devi __call_ o chiedere questo metodo per preparare la colazione) (L’atto di preparare la colazione è una funzione chiamata Cooking ) _

Le uova e le salsicce sono parametri:

(poiché il numero di uova e il numero di salsicce che si desidera mangiare è __variabile_). _

La tua decisione è un argomento:

Rappresenta il valore __Valore_ del numero scelto di uova e / o salsicce che stai cucinando ._

{ Mnemonico }

_ “Quando chiami la cameriera e le chiedi di fare colazione, lei __argues_ con te su quante uova e salsicce dovresti mangiare.Essa è preoccupata per il tuo colesterolo” __

(Gli argomenti, quindi, sono i valori per la combinazione di parametri che hai dichiarato e hanno deciso di passare alla tua funzione)

È spiegato perfettamente in Parameter (programmazione per computer) – Wikipedia

In modo approssimativo, un parametro è un tipo e un argomento è un’istanza.

Nella definizione di funzione f(x) = x*x la variabile x è un parametro; nella funzione chiamata f(2) il valore “ 2 è l’argomento della funzione.

E parametro – Wikipedia

Nella programmazione per computer , vengono comunemente utilizzate due nozioni di parametro , che vengono definite parametri e argomenti, o più formalmente come parametro formale e parametro effettivo .

Ad esempio, nella definizione di una funzione come

y = f(x) = x + 2,

x è il parametro formale (il parametro ) della funzione definita.

Quando la funzione viene valutata per un determinato valore, come in

f(3): or, y = f(3) = 3 + 2 = 5,

è il parametro attuale (l’ argomento ) per la valutazione dalla funzione definita; è un dato valore (valore reale) che viene sostituito dal parametro formale della funzione definita. (Nell’uso casuale i termini parametro e argomento potrebbero inavvertitamente essere scambiati, e quindi utilizzati in modo errato.)

Devi tornare alle basi. Costruttori e metodi hanno parametri e argomenti. Molte persone chiamano anche metodi speciali per i costruttori. Ecco come vengono usati i parametri di un metodo:

  type name(parameters){ //body of method } 

E questo è il modo in cui un costruttore viene dichiarato che i parametri sono usati :

 classname(parameters){ //body } 

Ora vediamo un codice di esempio con cui calcoliamo il volume di 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); } } 

Quindi ora capisci che quando chiamiamo un costruttore / metodo su un object in un punto successivo del codice passiamo gli argomenti e non i parametri. I parametri sono limitati al punto in cui l’object logico è definito ma gli argomenti entrano in gioco quando un l’object viene effettivamente creato.