Argumenter eller parametere?

stemmer
180

Jeg finner ofte meg selv forvirret med hvordan begrepene argumenter og 'parametre' blir brukt. De synes å være brukt om hverandre i programmerings verden.

Hva er riktig konvensjonen for deres bruk?

Publisert på 09/01/2009 klokken 10:42
kilden bruker
På andre språk...                            


12 svar

stemmer
198

Parametere er det som er definert av funksjoner som input, argumenter er det ting som passerte parametere.

void foo(int bar) { ... }

foo(baz);

I dette eksemplet, barer en parameter for foo. bazer et argument til foo.

Svarte 09/01/2009 kl. 10:44
kilden bruker

stemmer
13

Argumenter er det du har når du påkalle en subrutine. Parametere er hva du skal bruke inne i subrutine.

argle(foo, bar);

fooog barer argumenter.

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

args er en parameter.

Svarte 09/01/2009 kl. 10:45
kilden bruker

stemmer
4

Selv om Wikipedia er neppe en autoritativ kilde, gjør det en anstendig jobb med å forklare begrepene .

Jeg antar du kan si at parametrene er å argumenter hvilke klasser skal tilfeller av gjenstander ...

Svarte 09/01/2009 kl. 10:53
kilden bruker

stemmer
190

En parameter er en variabel i erklæringen av en funksjon:

functionName(parameter) {
    // do something
}


En Argument er den faktiske verdien av denne variabelen som blir sendes til funksjonen:

functionName(argument);
Svarte 09/01/2009 kl. 11:08
kilden bruker

stemmer
5

Det er fint delen i parameter Wikipedia artikkel om dette temaet.

Kort sagt - parameter er den formelle navn definert av funksjon og argument er faktisk verdi (for eksempel 5) eller en gjenstand (som variabel) føres inn i funksjon.

Svarte 14/10/2010 kl. 15:07
kilden bruker

stemmer
26

For user1515422, en meget konkret eksempel viser forskjellen mellom de enkelte parametere og argumenter:

Vurdere denne funksjonen:

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

Den har to parametre : numeratorog denominatorangir når det er definert. Når den er definert, blir parametrene for en funksjon fast og vil ikke endre seg.

Nå vurdere en påkallelse av denne funksjonen:

int result = divide(8, 4);

I dette tilfellet, 8og 4er de argumentene som sendes til funksjonen. Den numeratorparameteren er satt til verdien av argumentet 8, og denominatorer satt til 4. Da funksjonen beregnes med parametrene som er satt til verdien av argumentene. Du kan tenke på prosessen som tilsvarende:

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

Forskjellen mellom en parameter og et argument er beslektet med forskjellen mellom en variabel og dens verdi. Hvis jeg skriver int x = 5;, er variabel xog verdien er 5. Forvirring kan oppstå fordi det er naturlig å si ting som "x er fem," som forkortelse for "Variabelen x har verdien 5", men forhåpentligvis skillet er klart.

Betyr det avklare ting?

Svarte 27/07/2012 kl. 00:11
kilden bruker

stemmer
1

Bare det er ingen store forskjeller. Hvis vi går dypt inne i dette kan vi identifisere diff.Mainly vi vet at Argument / Parameter / signatur alle er like.

I utgangspunktet Parameter definerer den type av data er passing.Where som argumentet definerer de faktiske data / variabel vi passerer.

Parameter Eksempel: -

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

Argument Eksempel: -

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
Svarte 01/08/2012 kl. 13:39
kilden bruker

stemmer
1

I de fleste tilfeller trenger en prosedyre noen informasjon om omstendighetene som den har blitt kalt. En prosedyre som utfører gjentatte eller felles oppgaver bruker forskjellig informasjon for hvert anrop. Denne informasjonen består av variabler, konstanter og uttrykk som du passerer til prosedyren når du kaller det.

For å kommunisere denne informasjonen til den prosedyre, definerer prosedyren en parameter, og den anropende kode passerer et argument til denne parameteren. Du kan tenke på parameteren som en parkeringsplass og argumentet som en bil. Akkurat som forskjellige biler kan parkere på parkeringsplassen ved forskjellige tider, kan ringer koden passere en annen argument til samme parameter hver gang det kaller prosedyren.

parametere

En parameter representerer en verdi at prosedyren forventer at du skal passere når du kaller det. Fremgangsmåten erklæring definerer parametrene.

Når du definerer en funksjon eller Sub prosedyre , angir du en parameterliste i parentes umiddelbart etter prosedyren navn. For hver parameter angir man et navn, en datatype, og et forbigående mekanisme (ByVal eller ByRef). Du kan også tyde på at en parameter er valgfri, noe som betyr at ringer koden er ikke nødt til å passere en verdi for det.

Navnet på hver parameter tjener som en lokal variabel i prosedyren. Du bruker parameternavnet på samme måte som du bruker en annen variabel.

argumenter

Et argument representerer verdien passerer til en prosedyre parameter når man kaller prosedyren. Ringer koden leverer argumentene når det kaller prosedyren.

Når du ringer en funksjon eller Sub prosedyre , inkluderer du en argumentliste i parentes umiddelbart etter prosedyren navn. Hver argument tilsvarer den parameteren i den samme posisjon i listen.

I motsetning til parameter definisjon, gjør argumentene ikke har navn. Hver argument er et uttrykk, som kan inneholde ingen eller flere variabler, konstanter og konstanter. Datatypen av den evaluerte uttrykket bør vanligvis samsvare med den datatype som er definert for den tilsvarende parameter, og i hvert fall må det være konvertibel til parametertypen.

Svarte 02/08/2012 kl. 12:04
kilden bruker

stemmer
0

Faktisk både parameter og argument er forskjellige typer parametre. de er

1) formelle parametere - variabler vises i funksjons / subrutinen definisjoner

for eksempel. (I Java)

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

Her er både heltall og s2 er formelle parametere eller løst talende parametere.

2) aktuelle parametere eller argumenter - variabler vises i subrutiner mens ringer

allerede definert subrutine

for eksempel. (I Java) anta Hvis funksjonen "foo" ligger i objekt "testObject",

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

Så variabler i funksjonsdefinisjonen kalles formelle parametere eller bare parametere og variabler mens ringer metoder blir kalt som faktiske parametere eller argumenter. Jeg håper det hjelper.

Svarte 02/08/2012 kl. 12:14
kilden bruker

stemmer
0

Tenk på det som grunnleggende algebra. X er parameteren som du må fylle ut, og nummeret du plasserer inne i det argumentet. Så hvis du har en ligning som X + 2, X er parameter, og noen tall du endrer for X blitt kjent som argumenter. Så hvis du bruker den ligningen du supplere en for x, får du 1 + 2. Det betyr at en er et argument, tilføres til parameteren av X.

Like, hvis du har en funksjon som dosomething ( "Denne"), er det definisjonen ville være dosomething (streng parametername), men "Denne" vil være den faktiske argument som blir levert til parameter, her kalt parametername.

I den enkleste måten å se på det, er parameteren det som argument fyller, og argumentet kan være en rekke ting som tillates av denne parameteren.

Så det er en mange-til-en forhold mellom Parametere og argumenter, som du kan ha en parameter som kan ha mange gyldige argumenter, som vår X + 1 likningen ovenfor. X kan være en rekke kjente, og de er alle gyldige.

Svarte 02/08/2012 kl. 17:32
kilden bruker

stemmer
2

Når du definerer en funksjon som:

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

Du angir parametrene når du definerer funksjonen. Når du kaller funksjonen som dette:

MyFunction('argument1', 'argument2');

Du setter verdiene av parametrene til argumentene du passerte. Argumentene er hva du putter i spørsmålet når du kaller det. Håper det hjalp.

Svarte 02/08/2012 kl. 18:59
kilden bruker

stemmer
0

En variabel er et lagringssted og et tilhørende symbolsk navn (en identifikator) som inneholder data, en verdi.

En parameter er en variabel sendes til en funksjon.

Et argument er data (en verdi) sendes til en funksjon.

$variable = 'data/value';

function first($variable){ ... }

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

I funksjon først, blir vi passerer en parameter.

I funksjon andre og tredje er vi passerer argumenter.

Svarte 09/11/2012 kl. 13:23
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more