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