it-swarm.com.de

Argumente oder Parameter?

Ich bin oft verwirrt, wie die Begriffe "Argumente" und "Parameter" verwendet werden. Sie scheinen in der Programmierwelt austauschbar zu sein.

Was ist die richtige Konvention für ihre Verwendung?

189
Peanut

Parameter sind die Dinge, die von Funktionen als Eingabe definiert werden, Argumente sind die Dinge, die als Parameter übergeben werden.

void foo(int bar) { ... }

foo(baz);

In diesem Beispiel ist bar ein Parameter für foo. baz ist ein Argument, das an foo übergeben wird.

206
Mehrdad Afshari

Ein Parameter ist eine Variable in der Deklaration einer Funktion:

functionName(parameter) {
    // do something
}


Ein Argument ist der tatsächliche Wert dieser Variablen, der an die Funktion übergeben wird:

functionName(argument);
197
Rinat Abdullin

Für user1515422 ein sehr konkretes Beispiel, das den Unterschied zwischen Parametern und Argumenten zeigt:

Betrachten Sie diese Funktion:

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

Es hat zwei Parameter: numerator und denominator, festgelegt, wenn es definiert ist. Einmal definiert, sind die Parameter einer Funktion festgelegt und ändern sich nicht.

Betrachten Sie nun einen Aufruf dieser Funktion:

int result = divide(8, 4);

In diesem Fall sind 8 Und 4 Die Argumente, die an die Funktion übergeben werden. Der Parameter numerator wird auf den Wert des Arguments 8 Gesetzt, und denominator wird auf 4 Gesetzt. Anschließend wird die Funktion mit den Parametern ausgewertet, die auf den Wert der Argumente gesetzt sind. Sie können sich den Prozess als äquivalent zu Folgendem vorstellen:

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

Der Unterschied zwischen einem Parameter und einem Argument entspricht dem Unterschied zwischen einer Variablen und ihrem Wert. Wenn ich int x = 5; Schreibe, ist die Variable x und der Wert ist 5. Verwirrung kann entstehen, weil es natürlich ist, Dinge wie "x ist fünf" als Abkürzung für "Die Variable x hat den Wert 5" zu sagen, aber hoffentlich ist die Unterscheidung klar.

Klärt das die Dinge?

27
blahdiblah

Argumente haben Sie, wenn Sie eine Unterroutine aufrufen. Auf die Parameter greifen Sie innerhalb des Unterprogramms zu.

argle(foo, bar);

foo und bar sind Argumente.

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

args ist ein Parameter.

13
Hank Gay

Es gibt einen Nizza-Abschnitt in Parameter Wikipedia-Artikel zu diesem Thema.

Kurz gesagt - Parameter ist der formale Name, der durch Funktion und Argument definiert wird. Ist der aktuelle Wert (wie 5) oder eine Sache (wie eine Variable), die an die Funktion übergeben wird.

6

Obwohl Wikipedia kaum eine maßgebliche Quelle ist, leistet es einen anständigen Job Erklärung der Begriffe .

Man könnte sagen, Parameter sind Argumente, Klassen Instanzen von Objekten.

4
CJM

Wenn Sie eine Funktion wie folgt definieren:

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

Sie stellen die Parameter ein, wenn Sie die Funktion definieren. Wenn Sie die Funktion wie folgt aufrufen:

MyFunction('argument1', 'argument2');

Sie setzen die Werte der Parameter auf die von Ihnen übergebenen Argumente. Die Argumente bringen Sie in die Frage, wenn Sie sie aufrufen. Hoffe das hat geholfen.

2
Addison

In den meisten Fällen benötigt eine Prozedur einige Informationen zu den Umständen, unter denen sie aufgerufen wurde. Eine Prozedur, die wiederholte oder gemeinsam genutzte Aufgaben ausführt, verwendet unterschiedliche Informationen für jeden Anruf. Diese Informationen bestehen aus Variablen, Konstanten und Ausdrücken, die Sie beim Aufrufen an die Prozedur übergeben.

Um diese Informationen an die Prozedur zu übermitteln, definiert die Prozedur einen Parameter und der aufrufende Code übergibt ein Argument an diesen Parameter. Sie können sich den Parameter als Parkplatz und das Argument als Automobil vorstellen. So wie verschiedene Automobile zu unterschiedlichen Zeiten auf dem Parkplatz parken können, kann der aufrufende Code bei jedem Aufruf der Prozedur ein anderes Argument an denselben Parameter übergeben.

Parameter

Ein Parameter stellt einen Wert dar, den die Prozedur beim Aufrufen übergeben soll. Die Deklaration der Prozedur definiert ihre Parameter.

Wenn Sie eine Funktion oder Subprozedur definieren, geben Sie eine Parameterliste in Klammern unmittelbar nach dem Prozedurnamen an. Für jeden Parameter geben Sie einen Namen, einen Datentyp und einen Übergabemechanismus (ByVal oder ByRef) an. Sie können auch angeben, dass ein Parameter optional ist. Dies bedeutet, dass der aufrufende Code keinen Wert übergeben muss.

Der Name jedes Parameters dient als lokale Variable innerhalb der Prozedur. Sie verwenden den Parameternamen genauso wie jede andere Variable.

Argumente

Ein Argument stellt den Wert dar, den Sie an einen Prozedurparameter übergeben, wenn Sie die Prozedur aufrufen. Der aufrufende Code liefert die Argumente, wenn er die Prozedur aufruft.

Wenn Sie eine Funktion oder Subprozedur aufrufen, fügen Sie eine Argumentliste in Klammern unmittelbar nach dem Prozedurnamen ein. Jedes Argument entspricht dem Parameter an derselben Position in der Liste.

Im Gegensatz zur Parameterdefinition haben Argumente keine Namen. Jedes Argument ist ein Ausdruck, der keine oder mehrere Variablen, Konstanten und Literale enthalten kann. Der Datentyp des ausgewerteten Ausdrucks sollte normalerweise mit dem für den entsprechenden Parameter definierten Datentyp übereinstimmen und muss in jedem Fall in den Parametertyp konvertierbar sein.

1
Sachin Mhetre

Es gibt einfach keine großen Unterschiede. Wenn wir uns damit befassen, können wir den Unterschied identifizieren. Hauptsächlich wissen wir, dass Argument/Parameter/Signatur alle gleich sind.

Grundsätzlich definiert Parameter den Datentyp, den wir übergeben. Wobei Argument die tatsächlichen Daten/Variablen definiert, die wir übergeben.

Parameter Beispiel: -

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

Argument Beispiel: -

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
1
JDGuide

Betrachten Sie es als grundlegende Algebra. X ist der Parameter, den Sie eingeben müssen, und die Zahl, die Sie darin einfügen, ist das Argument. Wenn Sie also eine Gleichung wie X + 2 haben, ist X Ihr Parameter, und alle Zahlen, die Sie für X ändern, werden als Argumente bezeichnet. Wenn Sie also diese Gleichung verwenden und 1 für x addieren, erhalten Sie 1 + 2. Das bedeutet, dass 1 ein Argument ist, das an den Parameter von X übergeben wird.

Wenn Sie eine Funktion wie "Dosomething" ("This") haben, ist die Definition "Dosomething" (String-Parametername). "This" ist jedoch das eigentliche Argument, das für den Parameter angegeben wird, der hier als Parametername bezeichnet wird.

Auf die einfachste Weise ist der Parameter das, was das Argument ausfüllt, und das Argument kann eine beliebige Anzahl von Dingen sein, die von diesem Parameter zugelassen werden.

Es handelt sich also um eine 1: 1-Beziehung zwischen Parametern und Argumenten, da Sie einen Parameter haben können, der viele gültige Argumente haben kann, wie unsere obige X + 1-Gleichung. X kann eine beliebige bekannte Zahl sein und sie sind alle gültig.

0
Gyhth

Tatsächlich sind sowohl Parameter als auch Argument unterschiedliche Parametertypen. Jene sind

1) Formale Parameter - Variablen erscheinen in Funktions-/Unterprogrammdefinitionen

für zB. (in Java)

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

Hier sind sowohl Integer als auch S2 formale Parameter oder lose sprechende Parameter.

2) Aktuelle Parameter oder Argumente - Variablen erscheinen in Unterprogrammen beim Aufruf der

bereits definiertes Unterprogramm

für zB. (in Java) Angenommen, die Funktion "foo" befindet sich im Objekt "testObject".

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

Variablen in der Funktionsdefinition werden daher als formale Parameter oder einfach als Parameter und Variablen bezeichnet, während aufgerufene Methoden als tatsächliche Parameter oder Argumente aufgerufen werden. Ich hoffe, es hilft.

0
sakthisundar

Eine Variable ist ein Speicherort und ein zugehöriger symbolischer Name (ein Bezeichner), der Daten und einen Wert enthält.

Ein Parameter ist eine Variable, die an eine Funktion übergeben wird.

Ein Argument sind Daten (ein Wert), die an eine Funktion übergeben werden.

$variable = 'data/value';

function first($variable){ ... }

function second('data/value'){ ... }
function third(16){ ... }

In der Funktion übergeben wir zuerst einen Parameter.

In der zweiten und dritten Funktion übergeben wir Argumente.

0
wlf