问: Is there a difference between a "parameter" and an "argument", or are they simply synonyms?


Parameter 与argument有啥区别?



答:

———----------

Argument is often used in the sense of actual argument vs. formal parameter.


The formal parameter is what is given in the function declaration/definition/prototype, while the actual argument is what is passed when calling the function — an instance of a formal parameter, if you will.


That being said, they are often used interchangeably, their exact use depending on different programming languages and their communities. For example, I have also heard actual parameter etc.


So here, x and y would be formal parameters:

int foo(int x, int y) {

    ...

}

Whereas here, in the function call, 5 and z are the actual arguments:

foo(5, z);


Argument 一般用作实际参数,而parameter 是概念性的。parameter是在定义的时候指定的参数,而argument 是实际带入这些参数的参数值。


比如 x 和 y 是参数parameters:

int foo(int x, int y) {

    ...

}

而实际调用时, 5 和 z 是 arguments:

foo(5, z);


—————-------------


Generally, the parameters are what are used inside the function and the arguments are the values passed when the function is called.

double sqrt(double x)

{

    ...

    return x;

}


void other(void)

{

     double two = sqrt(2.0);

}


Under my thesis, x is the parameter to sqrt() and 2.0 is the argument.







—————------------

They are often used interchangeably in text, but in most standards the distinction is that an argument is an expression passed to a function, where a parameter is a reference declared in a function declaration.

参考链接:


Parameter 与argument有啥区别?-LMLPHP





以一个 perl 实例为例:


构造函数里:

  my $ref={"Owner"=>$owner,

        "Price"=>$salary,

        "Style"=>$style,

    };


The key/value pairs are called the properties, or attributes, of the object. The values are passed in as arguments to the constructor.


实例方法(display)里:

    foreach $key( @_ )

    {

        print "$key: $$self{$key}\n";

    }



在主程序调用时:

$house->display(“Owner”,"Style");


The instance method is called with arguments.


10-27 16:31