Pergunta

Esta questão já tem uma resposta aqui:

Sinto-me frequentemente confundida com a forma como são utilizados os termos 'argumentos' e 'parâmetros'. Eles parecem ser usados ??alternadamente no mundo da programação.

O que é a convenção correto para seu uso?

Foi útil?

Solução

Parâmetros são as coisas definidas por funções como entrada, os argumentos são as coisas passadas como parâmetros.

void foo(int bar) { ... }

foo(baz);

Neste exemplo, bar é um parâmetro para foo. baz é um argumento passado para foo.

Outras dicas

A Parâmetros é uma variável na declaração de uma função:

functionName(parameter) {
    // do something
}


Um Argumento é o valor real desta variável que é passada para a função:

functionName(argument);

Para user1515422, um exemplo muito concreto mostrando a diferença entre os parâmetros e argumentos:

Considere esta função:

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

Tem dois parâmetros : numerator e denominator, set quando está definido. Uma vez definidos, os parâmetros de uma função são fixos e não vai mudar.

Agora, considere uma invocação dessa função:

int result = divide(8, 4);

Neste caso, 8 e 4 são os argumentos passados ??para a função. O parâmetro numerator está definido para o valor do 8 argumento, e denominator está definido para 4. Em seguida, a função é avaliada com os parâmetros definidos para o valor dos argumentos. Você pode pensar no processo como equivalente a:

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

A diferença entre um parâmetro e um argumento é semelhante à diferença entre uma variável e seu valor. Se eu escrever int x = 5;, a variável é x eo valor é 5. A confusão pode surgir porque é natural dizer coisas como "x é cinco", como abreviação para "A variável x tem o valor 5," mas espero que a distinção é clara.

O que esclarecer as coisas?

Os argumentos são o que você tem quando você está invocando uma sub-rotina. Parâmetros são o que você está acessando dentro da sub-rotina.

argle(foo, bar);

foo e bar são argumentos.

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

args é um parâmetro.

Não é agradável seção parâmetro artigo da Wikipedia sobre este assunto.

Em suma -. parâmetro é o nome formal definida por função e argumento é o valor real (como 5) ou coisa (como variável) passou para a função

Apesar da Wikipedia é quase uma fonte autorizada, ele faz um trabalho digno de explicando os termos .

Eu acho que você poderia dizer que os parâmetros são argumentos que classes são para instâncias de objetos ...

Quando você define uma função como:

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

Você define os parâmetros quando você definir a função. Quando você chamar a função como esta:

MyFunction('argument1', 'argument2');

Você define os valores dos parâmetros para os argumentos que você passou. Os argumentos são o que você colocar na pergunta quando você chamá-lo. Esperança de que ajudou.

Simplesmente não há grandes diferenças. Se formos profundamente dentro deste podemos identificar a diff.Mainly sabemos que Argumento / Parâmetro / assinatura todos são iguais.

Basicamente Parâmetros define o tipo de dados que estamos passing.Where como o Argumento define a data / variável real estamos passando.

Parâmetro Exemplo: -

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

Argumento Exemplo: -

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

Na maioria dos casos, um procedimento necessita de alguma informação sobre as circunstâncias em que foi chamado. Um procedimento que executa repetida ou tarefas partilhadas usa informações diferentes para cada chamada. Esta informação consiste de variáveis, constantes e expressões que você passar para o procedimento quando você chamá-lo.

Para comunicar essas informações para o procedimento, o procedimento define um parâmetro e o código de chamada passa um argumento para esse parâmetro. Você pode pensar do parâmetro como um lugar de estacionamento e o argumento como um automóvel. Assim como diferentes automóveis podem estacionar no lugar de estacionamento em diferentes momentos, o código de chamada pode passar um argumento diferente para o mesmo parâmetro cada vez que ele chama o procedimento.

Parâmetros

Um parâmetro representa um valor que o procedimento espera que você passar quando você chamá-lo. A declaração do procedimento define seus parâmetros.

Quando você define um Função ou Sub procedimento , você pode especificar uma lista de parâmetros entre parênteses imediatamente após o nome do procedimento. Para cada parâmetro, você especificar um nome, um tipo de dados, e um mecanismo de passagem (ByVal ou ByRef). Você também pode indicar que um parâmetro é opcional, ou seja, o código de chamada não tem que passar um valor para ele.

O nome de cada parâmetro serve como uma variável local dentro do procedimento. Você usa o nome do parâmetro da mesma maneira como você usa qualquer outra variável.

Argumentos

Um argumento representa o valor que você passar para um parâmetro de procedimento quando você chamar o procedimento. A chamando suprimentos código dos argumentos quando chama o procedimento.

Quando você chama um Função ou Sub procedimento , você incluir uma lista de argumentos entre parênteses imediatamente após o nome do procedimento. Cada argumento corresponde ao parâmetro na mesma posição na lista.

Em contraste com a definição de parâmetros, argumentos não têm nomes. Cada argumento é uma expressão, que pode conter zero ou mais variáveis, constantes e literais. O tipo de dados da expressão avaliada normalmente deve corresponder ao tipo de dados definido para o parâmetro correspondente, e em qualquer caso, deve ser conversível para o tipo de parâmetro.

Na verdade tanto parâmetro e argumento são os diferentes tipos de parâmetros. Essas são

1) Parâmetros formais - variáveis ??aparecem na função / sub-rotina definições

para, por exemplo. (Em Java)

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

Aqui ambos inteiros e s2 são parâmetros formais ou parâmetros Genericamente falando.

2) parâmetros ou argumentos reais - variáveis ??aparecem na sub-rotinas ao chamar o

sub-rotina já definido

para, por exemplo. (Em Java) suponha que se a função "foo" reside no objeto "testObject",

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

Assim variáveis ??na definição de função são chamados parâmetros formais ou simplesmente parâmetros e variáveis, enquanto métodos de chamada são chamados como parâmetros ou argumentos reais. Espero que ajude.

Pense nisso como álgebra básica. X é o parâmetro que você tem que preencher, eo número que você colocar dentro do que é o argumento. Então se você tem uma equação como X + 2, X é o parâmetro, e os números que mudar para X tornaria conhecido como os argumentos. Então, se usando essa equação você completar a 1 para x, você ganha 1 + 2. Isso significa que 1 é um argumento, fornecido ao parâmetro de X.

Da mesma forma, se você tiver uma função como dosomething ( "This"), é definição seria dosomething (parametername string), mas "Esta" seria o argumento real que está a ser fornecido ao parâmetro, aqui chamado parametername.

Na forma mais simples de olhar para ele, o parâmetro é a coisa que os preenchimentos de argumento, e o argumento pode ser qualquer número de coisas permitidas por esse parâmetro.

Portanto, é um relacionamento muitos-para-um entre Parâmetros e argumentos, como você pode ter um parâmetro que pode ter muitos argumentos válidos, como nossa equação X + 1 acima. X pode ser qualquer número conhecido, e todos eles são válidos.

Uma variável é um local de armazenamento e um nome simbólico associado (um identificador), que contém dados, um valor.

Um parâmetro é uma variável passada para uma função.

Um argumento é de dados (um valor) passado para uma função.

$variable = 'data/value';

function first($variable){ ... }

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

Em função primeira estamos passando um parâmetro.

Em função de segundo e terceiro nós estamos passando argumentos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top