我经常发现自己对如何使用“参数”和“参数”这两个术语感到困惑。它们似乎在编程世界中可以互换使用。
他们使用的正确约定是什么?
我经常发现自己对如何使用“参数”和“参数”这两个术语感到困惑。它们似乎在编程世界中可以互换使用。
他们使用的正确约定是什么?
参数是由函数定义为输入的东西,参数是作为参数传递的东西。
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 是 5”是“变量 x 的值是 5”的简写是很自然的,但希望区别很清楚。
这能澄清事情吗?
参数是您在调用子例程时所拥有的。参数是您在子例程中访问的内容。
argle(foo, bar);
foo
并且bar
是论据。
public static void main(final String[] args) {
args.length;
}
args
是一个参数。
关于这个主题的参数维基百科文章中有很好的部分。
简而言之——参数是函数定义的正式名称,参数是传递给函数的实际值(如 5)或事物(如变量)。
尽管 Wikipedia 几乎不是权威来源,但它在解释术语方面做得不错。
我想你可以说参数是参数什么类是对象的实例......
当您定义如下函数时:
MyFunction(param1,param2) {
print parameter1, parameter
}
在定义函数时设置参数。当你像这样调用函数时:
MyFunction('argument1', 'argument2');
您将参数的值设置为您传递的参数。论点是您在调用问题时提出的问题。希望有帮助。
简单来说没有大的区别。如果我们深入其中,我们可以识别差异。主要我们知道 Argument/Parameter/signature 都是相同的。
基本上,参数 定义了我们传递的数据的类型。参数 定义了我们传递的实际数据/变量。
参数示例:-
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
在大多数情况下,一个过程需要一些关于它被调用的环境的信息。执行重复或共享任务的过程对每个调用使用不同的信息。此信息由调用过程时传递给过程的变量、常量和表达式组成。
为了将此信息传递给过程,过程定义了一个参数,调用代码将一个参数传递给该参数。您可以将参数视为停车位,将参数视为汽车。正如不同的汽车可以在不同的时间停在停车位一样,调用代码每次调用过程时可以将不同的参数传递给同一个参数。
参数
参数表示过程希望您在调用它时传递的值。过程的声明定义了它的参数。
当您定义Function或Sub 过程时,您在紧跟过程名称的括号中指定参数列表。为每个参数指定名称、数据类型和传递机制(ByVal 或 ByRef)。您还可以指示参数是可选的,这意味着调用代码不必为它传递值。
每个参数的名称用作过程中的局部变量。您使用参数名称的方式与使用任何其他变量的方式相同。
论据
参数表示您在调用过程时传递给过程参数的值。调用代码在调用过程时提供参数。
当您调用Function或Sub 过程时,您在紧跟过程名称之后的括号中包含一个参数列表。每个参数对应于列表中相同位置的参数。
与参数定义相反,参数没有名称。每个参数都是一个表达式,它可以包含零个或多个变量、常量和文字。计算表达式的数据类型通常应该与为相应参数定义的数据类型匹配,并且在任何情况下它都必须可转换为参数类型。
事实上,参数和参数都是不同类型的参数。那些是
1)形式参数 - 变量出现在函数/子程序定义中
例如。(在 Java 中)
public void foo(Integer integer, String... s2)
这里整数和 s2 都是形式参数或松散的参数。
2)实际参数或实参——变量出现在子程序中,同时调用
已经定义的子程序
例如。(在 Java 中)假设如果函数 "foo" 驻留在对象 "testObject" 中,
testObject.foo(new Integer(1), "test")
因此,函数定义中的变量称为形参或简单的参数和变量,而调用方法则称为实参或实参。我希望它有所帮助。
把它想象成基本代数。X 是您必须填写的参数,您在其中放置的数字是参数。所以如果你有一个像 X+2 这样的方程,X 是你的参数,你为 X 改变的任何数字都被称为参数。因此,如果使用该等式为 x 补充 1,则得到 1+2。这意味着 1 是一个参数,提供给 X 的参数。
同样,如果你有一个像 dosomething("This") 这样的函数,它的定义将是 dosomething(string parametername),但 "This" 将是提供给参数的实际参数,这里命名为 parametername。
以最简单的方式来看,参数是参数填充的东西,参数可以是该参数允许的任意数量的东西。
所以参数和参数之间是多对一的关系,因为你可以有一个参数可以有许多有效的参数,就像我们上面的 X+1 方程。X 可以是任何已知的数字,并且它们都是有效的。
变量是存储位置和关联的符号名称(标识符),其中包含数据、值。
参数是传递给函数的变量。
参数是传递给函数的数据(值)。
$variable = 'data/value';
function first($variable){ ... }
function second('data/value'){ ... }
function third(16){ ... }
在函数中,我们首先传递一个参数。
在第二个和第三个函数中,我们传递参数。