Pea*_*nut 190 language-agnostic parameters arguments terminology function
我常常发现自己对如何使用术语"参数"和"参数"感到困惑.它们似乎在编程世界中可以互换使用.
使用它们的正确惯例是什么?
Meh*_*ari 207
参数是由函数定义为输入的东西,参数是作为参数传递的东西.
void foo(int bar) { ... }
foo(baz);
Run Code Online (Sandbox Code Playgroud)
在此示例中,bar是一个参数foo.baz是一个传递给的论点foo.
Rin*_*lin 198
甲参数是在函数的声明的变量:
functionName(parameter) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
一个参数是这个变量被传递给函数的实际值:
functionName(argument);
Run Code Online (Sandbox Code Playgroud)
bla*_*lah 27
对于user1515422,一个非常具体的例子显示了参数和参数之间的区别:
考虑这个功能:
int divide(int numerator, int denominator) {
return numerator/denominator;
}
Run Code Online (Sandbox Code Playgroud)
它有两个参数:numerator和denominator,在定义时设置.一旦定义,函数的参数是固定的,不会改变.
现在考虑调用该函数:
int result = divide(8, 4);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,8并且4是参数传递给函数.该numerator参数设置参数的值8,并denominator设置为4.然后使用设置为参数值的参数来评估函数.您可以将该过程视为等效于:
int divide() {
int numerator = 8;
int denominator = 4;
return numerator/denominator;
}
Run Code Online (Sandbox Code Playgroud)
参数和参数之间的差异类似于变量与其值之间的差异.如果我写int x = 5;,变量是x和值5.混淆可能会出现,因为很自然地说"x是五"之类的东西,作为"变量x具有值5"的简写,但希望区别很明显.
这会澄清事情吗?
Han*_*Gay 13
参数是您在调用子例程时所拥有的.参数是您在子例程中访问的内容.
argle(foo, bar);
Run Code Online (Sandbox Code Playgroud)
foo并且bar是争论.
public static void main(final String[] args) {
args.length;
}
Run Code Online (Sandbox Code Playgroud)
args 是一个参数.