参数还是变量?

197

我经常发现自己对术语“arguments”和“parameters”的使用感到困惑。 在编程世界中,它们似乎可以互换使用。

它们的正确使用惯例是什么?


仅供参考,一个密切相关的问题:https://dev59.com/5HVC5IYBdhLWcg3w4VRz(这是针对C#特定的,而这个则是与语言无关的;除此之外基本相同。) - Jonik
@Jonik: 这不是仅限于C#,因为发帖者也问及其他编程语言中的术语。另一个问题已经存在较长时间,而且(在我看来)有一些更好的答案。 - Mechanical snail
1
如果我们将其视为与特定编程语言无关的,则它确实是一个完全相同的副本。 - Mechanical snail
12个回答

0

把它想象成基本的代数。X是你必须填写的参数,你放在里面的数字就是参数。所以如果你有一个方程式像X+2,X就是你的参数,任何你更改X的数字都被称为参数。所以如果你用这个方程式替换1为X,你会得到1+2。这意味着1是一个参数,提供给X的参数。

同样地,如果你有一个函数像dosomething("This"),它的定义将是dosomething(string parametername),但"This"将是实际提供给参数的参数,这里命名为parametername。

简单来看,参数是被参数填充的东西,而参数可以是由该参数允许的任何数量的东西。

因此,参数和参数之间是多对一的关系,因为你可以有一个参数,可以有许多有效的参数,就像我们上面的X+1方程式。X可以是任何已知的数字,它们都是有效的。


0
实际上,参数和参数是不同类型的参数。它们是:
1)形式参数 - 函数/子程序定义中出现的变量
例如(在Java中)
public void foo(Integer integer, String... s2)

这里的整数和s2都是形式参数,或者宽泛地说是参数。

2)实际参数或参数 - 在调用已定义的子程序时,变量出现在子程序中

例如(在Java中)

假设函数“foo”驻留在对象“testObject”中,

testObject.foo(new Integer(1), "test")

因此,在函数定义中的变量被称为形式参数或简称参数,而在调用方法时使用的变量被称为实际参数或参数。希望这可以帮助您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接