我经常发现自己对术语“arguments”和“parameters”的使用感到困惑。 在编程世界中,它们似乎可以互换使用。
它们的正确使用惯例是什么?
我经常发现自己对术语“arguments”和“parameters”的使用感到困惑。 在编程世界中,它们似乎可以互换使用。
它们的正确使用惯例是什么?
参数是函数定义的作为输入的东西,而参数则是作为参数传递的东西。
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
是一个参数。
args
作为参数的名称选得好吗? - Liamargs
是一个参数,但它的内容是在命令行上传递给程序启动的参数。把它称为“参数”是不正确的,因为虽然方法签名中的变量本身是一个参数,但该数组的内容(在运行时)不是参数。 - ColinDMyFunction(param1,param2) {
print parameter1, parameter
}
MyFunction('argument1', 'argument2');
您需要将参数的值设置为您传递的参数。参数是您在调用时放入问题中的内容。希望这有所帮助。
参数代表您在调用过程时传递给过程参数的值。调用代码在调用过程时提供参数。
当您调用函数或子过程时,您需要在过程名称后紧随其后的括号中包含一个参数列表。每个参数对应于列表中相同位置的参数。
与参数定义相反,参数没有名称。每个参数都是一个表达式,可以包含零个或多个变量、常量和文字。评估表达式的数据类型通常应与相应参数定义的数据类型匹配,在任何情况下,它必须能够转换为参数类型。
其实没有太大的区别。如果我们深入了解,我们可以找到不同之处。主要是我们知道参数/签名都是相同的。
基本上,参数定义了我们传递的数据类型。而参数则定义了我们传递的实际数据/变量。
参数示例:
int add(int a,int b){ //Here a and be both can treated as Parameter
return a+b;
}
参数示例:
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
$variable = 'data/value';
function first($variable){ ... }
function second('data/value'){ ... }
function third(16){ ... }
在函数 first 中,我们正在传递一个参数。
在函数 second 和 third 中,我们正在传递参数。