890

当口头谈论方法时,我永远不确定是否使用参数参数或其他词。无论哪种方式,其他人都知道我的意思,但什么是正确的,这些术语的历史是什么?

我是一名 C# 程序员,但我也想知道人们是否在不同的语言中使用不同的术语。

作为记录,我是自学的,没有计算机科学背景。(请不要告诉我阅读Code Complete,因为我问这个是为了其他还没有史蒂夫·麦康奈尔(Steve McConnell)精彩书籍的人的利益。)

概括

普遍的共识似乎是在团队环境中可以互换使用这些术语。除非您定义精确的术语;那么你也可以使用“形式参数/参数”和“实际参数/参数”来消除歧义。

4

36 回答 36

1155

参数是方法定义中的变量。调用方法时,参数是您传递给方法参数的数据。

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
于 2008-10-01T09:03:34.763 回答
402

参数是函数声明中的变量。

参数是传递给函数的这个变量的实际值。

于 2008-10-01T09:00:25.473 回答
132

简单的:

  • PARAMETER → P LACEHOLDER(表示占位符属于函数命名,在函数体中使用)
  • A RGUMENT → A CTUAL VALUE(这意味着函数调用传递的实际值)
于 2017-04-25T05:38:37.013 回答
81

已经有一个关于该主题的 Wikipedia 条目(参见Parameter)定义和区分术语parameterargument。简而言之,参数是函数/过程/方法签名的一部分,参数是在运行时和/或参数调用站点提供的实际值。

Wikipedia 文章还指出,这两个术语经常作为同义词使用(尤其是在非正式地推理代码时):

尽管参数通常也被称为参数,但参数更恰当地认为是在运行时调用子例程时分配给参数变量的实际值或引用。

给定以下 C 中的示例函数,该函数将两个整数相加,x并将y被称为其参数:

int add(int x, int y) {
    return x + y;
}

在使用 的调用站点add,例如下面显示的示例,123456将被称为调用的参数

int result = add(123, 456);

此外,一些语言规范(或正式文档)选择专门使用参数参数,并使用正式实际等形容词来消除两种情况之间的歧义。例如,C/C++ 文档通常将函数参数称为形式参数,将函数调用参数称为实际参数。有关示例,请参阅Visual C++ 语言参考中的“<a href="http://msdn.microsoft.com/en-us/library/f81cdka5.aspx" rel="noreferrer">正式和实际参数” 。

于 2008-10-01T09:27:35.410 回答
80

参数是函数声明中的变量。

参数是传递给函数的这个变量的实际值。 在此处输入图像描述

于 2018-07-08T11:52:17.013 回答
35

参数是调用函数时必须填写的内容。你放进去的是论据。

简单设置:参数进入参数,参数是参数的值。

更多信息: http ://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments

于 2008-10-01T09:03:29.600 回答
22

在程序员甚至作者中,术语参数和参数的使用在一定程度上被滥用了。在处理方法时,术语参数用于标识方法签名中的占位符,而术语参数是您传递给方法的实际值。

MCSD 认证工具包(考试 70-483)C# 编程,第 1 版,Wrox,2013 年

真实案例场景

// Define a method with two parameters
int Sum(int num1, int num2)
{
   return num1 + num2;
}

// Call the method using two arguments
var ret = Sum(2, 3);
于 2014-06-23T13:31:38.387 回答
13

假设您是一家航空公司。你造一架飞机。你在里面安装座位。然后,您将飞机装满乘客并将其发送到某个地方。乘客(或者更确切地说,一些时空改变的版本)下船。第二天,您再次使用同一架飞机和相同的座位,但这次是不同的乘客。

飞机是你的功能。

参数是座位。

争论的是坐在那些座位上的乘客。

function fly(seat1, seat2) {
    seat1.sayMyName();
    // Estraven
    seat2.sayMyName();

    etc.
}

var passenger1 = "Estraven";
var passenger2 = "Genly Ai";

fly(passenger1, passenger2); 
于 2014-01-11T20:16:59.310 回答
11

在编辑中,我经常对人们忘记的方式感到厌烦:结构语言是基于自然语言的。

用英语

“参数”是占位符。他们用口语设置响应格式。根据定义,它是通话的一方,限制了响应。

“论据”是正在考虑的立场。你争论你的观点:你考虑一个论点。

主要区别

论点的主题角色是代理。参数的主题角色是接受者。

互动

将参数视为男性部分,使参数成为女性部分。参数进入参数。

用法

参数通常用于定义中。参数通常用于调用。

问题

完成句子以减少不和谐。

(A) 说到定义:

  1. [] 将使用什么参数?
  2. 这个参数[]会是什么[]?

(B) 说到调用:

  1. 你将使用什么参数,[]?
  2. 什么[]会是[]这个参数?

答案

(一种)

  1. on/in/反对/使用这个参数
  2. 论据...采取

(乙)

  1. 什么是一些示例参数
  2. 论据...用于/在/反对/与

重叠

可以想象,在回答:在口语中,这些词有时会产生相同的反应!

因此,作为一项规则:

  • 通常如果有人想要参数信息,他们想知道更多关于类型、变量名等的信息。如果你只给出示例参数,他们可能会感到困惑。

    • 通常,如果有人想要参数信息,他们想知道您传递给函数或其参数的值。
于 2014-06-02T10:25:38.287 回答
10

函数/方法的参数向您描述了它用于计算其结果的值。

函数的参数是在函数/方法的特定调用期间分配给这些参数的值。

于 2008-10-01T09:04:06.917 回答
10

或者,在方法的可选参数的情况下,这样记住可能更简单:

public void Method(string parameter = "argument") 
{

}

parameter是参数,它的值,"argument"是参数:)

于 2013-12-22T04:21:13.193 回答
10

永远记住:
在接收参数时传递参数。

于 2017-09-22T08:48:50.223 回答
9

这个例子可能会有所帮助。

int main () {
   int x = 5; 
   int y = 4;

   sum(x, y); // **x and y are arguments**
}

int sum(int one, int two) { // **one and two are parameters**
   return one + two;
}
于 2013-08-26T15:06:13.887 回答
8

一般来说,术语参数和参数可以互换使用,表示传递给函数的信息。

然而,从函数的角度来看:

  • 参数是函数定义中括号内列出的变量。
  • 参数是在调用函数时发送给函数的值。
于 2020-01-27T09:49:40.353 回答
7

参数和参数

与参数和参数有关的所有不同术语都可能令人困惑。但是,如果您牢记几个简单的要点,您将能够轻松处理这些术语。

  1. 函数的形式参数在函数声明中列出,并在函数定义的主体中使用。形式参数(任何类型的)是一种空白或占位符,在调用函数时填充了某些内容。
  2. 参数是用来填充形式参数的东西。当你写下一个函数调用时,参数列在函数名后面的括号中。当函数调用被执行时,参数被插入形式参数。
  3. 术语按值调用和按引用调用是指在插入过程中使用的机制。在按值调用方法中,仅使用参数的值。在这种按值调用的机制中,形参是一个局部变量,它被初始化为相应参数的值。在引用调用机制中,参数是一个变量,并且使用了整个变量。在引用调用机制中,实参变量代替了形参,因此对形参所做的任何更改实际上都是对实参变量进行的。

资料来源:Absolute C++,Walter Savitch

那是,

在此处输入图像描述

于 2017-04-06T10:37:31.030 回答
6

这些术语在某种程度上可以互换。其他答案中描述的区别更恰当地表达为函数体内使用的名称的形式参数和调用站点提供的值的参数(形式参数参数也很常见)。

另请注意,在数学中,术语参数更常见,参数通常意味着完全不同的东西(尽管参数方程中的参数本质上是两个或多个函数的参数)。

于 2008-10-01T09:37:11.393 回答
5

参数是参数的实例化。

于 2014-03-18T06:56:21.587 回答
5

没有代码的简单解释

“参数”是一个非常笼统、宽泛的东西,但“参数:”是一个非常具体、具体的东西。通过日常示例可以最好地说明这一点:

示例 1:自动售货机 - Money 是参数,$2.00 是参数

大多数机器接受输入并返回输出。例如,自动售货机将货币作为输入,然后将汽水作为输出。在那种特殊情况下,它接受一个参数:money。

那么论据是什么呢?好吧,如果我将 $2.00 放入机器,那么参数是: $2.00 - 这是使用的非常具体的输入。

示例 2:汽车 - 汽油是参数

让我们考虑一辆汽车:他们接受汽油(无铅汽油)作为输入。可以说这些机器接受类型参数:汽油。论据将是我放入汽车的准确而具体的输入。例如,就我而言,论据是:40 升无铅汽油/汽油。

示例 3 - 论证的详细说明

参数是输入的特定和特定示例。假设我的机器将一个人作为输入并将他们变成不是骗子的人。

那么什么是论证呢?争论将是实际放入机器中的特定人。例如,如果将 Colin Powell 放入机器中,那么参数将是 Colin Powell。

因此,参数将是作为抽象概念的人,但参数始终是放入机器中的具有特定名称的特定人。论点是具体而具体的。

这就是区别。简单的。

使困惑?

发表评论,我会修正解释。

于 2015-10-28T21:22:30.520 回答
5

是的!参数和参数有不同的含义,可以简单解释如下:

函数参数是函数定义中列出的名称。

函数参数是传递给函数(并由函数接收)的实际值。

于 2017-06-28T09:10:47.180 回答
3

它们在 C 中的用法没有太大区别,这两个术语都在实践中使用。大多数情况下,参数通常与函数一起使用。与函数调用语句一起传递的值称为实参,而形参将是复制函数定义中的值的变量(称为形参)。

int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;

   /* calling a function to get max value */
   ret = max(a, b);

   printf( "Max value is : %d\n", ret );

   return 0;
}

/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

在上面的代码中num1,andnum2是形式参数,aandb是实际参数。

于 2013-10-27T14:25:35.720 回答
3

Oracle 的 Java 教程这样定义了这种区别:“参数是指方法声明中的变量列表。参数是调用方法时传入的实际值。调用方法时,使用的参数必须与声明的参数匹配按类型和顺序。”

参数和参数的更详细讨论: https ://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

于 2016-03-10T17:36:00.043 回答
3

从逻辑上讲,我们实际上在谈论同一件事。但我认为一个简单的比喻将有助于解决这个困境。

如果隐喻可以称为各种连接点,我们可以将它们等同于墙上的插头点。在这种情况下,我们可以考虑如下参数和参数;

参数是插头点的插座,可以采用各种不同的形状。但只有某些类型的插头适合它们。
参数将是插入插头点/插座以激活某些设备的实际插头。

于 2017-04-29T12:15:18.300 回答
3

参数是函数定义中的变量
参数是参数的

<?php

    /* define function */
    function myFunction($parameter1, $parameter2)
    {
        echo "This is value of paramater 1: {$parameter1} <br />";
        echo "This is value of paramater 2: {$parameter2} <br />";
    }

    /* call function with arguments*/
    myFunction(1, 2);

?>
于 2018-12-01T04:50:12.100 回答
2

或者更简单...

中的论据!

参数出来!

于 2013-06-15T06:09:30.543 回答
2

当我们在Java中创建方法(函数)时,像这样的方法..

data-type name of the method (data-type variable-name)

在括号中,这些是参数,当我们调用方法(函数)时,我们传递这个参数的值,这些值称为参数。

于 2016-03-23T07:59:35.307 回答
2

根据 Joseph 的 Alabahari 书“C# in a Nutshell”(C# 7.0,第 49 页):

static void Foo (int x)
{
    x = x + 1; // When you're talking in context of this method x is parameter
    Console.WriteLine (x);
}
static void Main()
{
    Foo (8); // an argument of 8. 
             // When you're talking from the outer scope point of view
}

在某些人类语言(afaik 意大利语、俄语)中,同义词被广泛用于这些术语。

  • 参数=形式参数
  • 参数=实际参数

在我的大学里,教授使用这两种名字。

于 2018-01-18T21:28:01.363 回答
1

我仔细考虑了一下,意识到我之前的答案是错误的。这是一个更好的定义

{想象一盒鸡蛋:一包香肠链接:和一个女仆} 这些代表了准备工作所需的函数的元素,称为:(使用任何名称:假设 Cooking 是我的函数的名称)。

女仆是一种方法。

(你必须__call_或要求这个方法做早餐)(做早餐的行为是一个叫做Cooking的函数)_

鸡蛋和香肠是参数:

(因为你想吃的鸡蛋数量和香肠数量是__variable_。)_

您的决定是一个参数:

它代表您正在烹饪的所选鸡蛋和/或香肠数量的 __Value_ ._

{助记符}

_“当你打电话给女仆让她做早餐时,她会和你争论_你应该吃多少鸡蛋和香肠。她担心你的胆固醇”__

(然后,参数是您声明并决定传递给函数的参数组合的值)

于 2017-12-10T12:23:27.417 回答
1

它在参数(计算机编程)中得到了完美的解释- 维基百科

松散地说,参数是一种类型,而参数是一个实例。

在函数定义f(x) = x*x中,变量x是参数;在函数调用f(2)中,值``2 是函数的参数。

参数 - 维基百科

计算机编程中,参数的两个概念是常用的,称为形参和实参——或更正式地称为形实参

例如,在一个函数的定义中,例如

y = f(x) = x + 2,

x是定义函数的形参数)。

当针对给定值评估函数时,如

f(3): or, y = f(3) = 3 + 2 = 5,

是定义函数评估的实际参数参数);它是一个给定值(实际值),用于替换定义函数的形式参数。(在不经意的使用中,术语参数参数可能会无意中互换,从而导致使用不正确。)

于 2018-03-19T11:18:07.847 回答
1

由于我的背景和主要环境是 C,我将提供一些来自实际 C 标准和重要参考书的对该主题的陈述/引用,来自 C 的开发人员之一,这经常被引用并被普遍视为第一个非官方C标准:


Brian W. Kernighan 和 Dennis M. Ritchie 的 C 编程语言(第 2 版)(1988 年 4 月):

第 25 页,第 1.7 节 - 功能

我们通常将参数用于函数定义中括号列表中命名的变量,并将参数用于函数调用中使用的值。术语形式论证实际论证有时用于相同的区别。

ISO/IEC 9899:2018 (C18):

3.3

争论

实际论证

已弃用:实际参数

函数调用表达式中由括号包围的逗号分隔列表中的表达式,或类函数宏调用中由括号包围的逗号分隔列表中的一系列预处理标记。


3.16

范围

形参

不推荐使用:形式参数

声明为函数声明或定义的一部分的对象,该对象在进入函数时获取值,或来自逗号分隔列表的标识符,该列表由紧跟在类似函数的宏定义中的宏名称之后的括号界定。

于 2019-12-25T18:33:07.047 回答
0

参数是函数接收的变量。因此它们在函数声明中可见。它们包含变量名称及其数据类型。参数是传递给另一个函数的实际值。这就是为什么我们可以在函数调用中看到它们。它们只是没有数据类型的值

于 2016-11-27T18:26:53.687 回答
0

函数的形式参数在函数声明中列出,并在函数定义的主体中使用。形式参数(任何类型的)是一种空白或占位符,在调用函数时填充了某些内容。

参数是用来填充形式参数的东西。当你写下一个函数调用时,参数列在函数名后面的括号中。当函数调用被执行时,参数被插入形式参数。

术语按值调用和按引用调用是指在插入过程中使用的机制。在按值调用方法中,仅使用参数的值。在这种按值调用的机制中,形参是一个局部变量,它被初始化为相应参数的值。在引用调用机制中,参数是一个变量,并且使用了整个变量。在引用调用机制中,实参变量代替了形参,因此对形参所做的任何更改实际上都是对实参变量进行的。

于 2017-06-13T08:32:21.817 回答
0

参数是用于存储传递给函数以供函数使用的数据的变量。参数是调用函数时传递给函数的实际数据:

// x and y are parameters in this function declaration
function add(x, y) {
  // function body
  var sum = x + y;
  return sum; // return statement
}

// 1 and 2 are passed into the function as arguments
var sum = add(1, 2);
于 2017-07-26T11:37:57.913 回答
0

您需要回归基础。构造函数和方法都有参数和参数。许多人甚至称构造函数为特殊类型的方法。这就是声明方法的参数的使用方式

      type name(parameters){
           //body of method
          }

这就是声明构造函数的方式,使用参数

classname(parameters){
//body
}

现在让我们看一个示例代码,我们使用它来计算立方体的体积:

public class cuboid {
    double width;
    double height;
    double depth;

      cuboid(double w,double h,double d) { 
      //Here w,h and d are parameters of constructor
       this.width=w;
       this.height=h;
       this.depth=d;
       }

        public double volume() {
        double v;
        v=width*height*depth;
        return v;
        }
        public static void main(String args[]){
           cuboid c1=new cuboid(10,20,30);
           //Here 10,20 and 30 are arguments of a constructor
           double vol;
           vol=c1.volume();
           System.out.println("Volume is:"+vol);

           }
    }

所以现在你明白了,当我们稍后在代码中的某个位置调用对象的构造函数/方法时,我们传递的是参数而不是参数。因此,参数仅限于定义逻辑对象的位置,但参数在物理对象时起作用对象被实际创建。

于 2018-06-01T07:39:16.197 回答
0

这是一个关键:价值问题...

参数是关键

参数是值

/****************************************/

例子:

名称:“彼得”

/********/

让 printName = ( name ) => console.log( name )

打印名称(“彼得”

/********/

在这种情况下,参数是“name”,参数是“Peter”

于 2021-03-19T09:56:29.263 回答
0

考虑下面的java代码。

public class Test{
   public String hello(String name){
      return "Hello Mr."+name;
   }

  public static void main(String args[]){
     Test test = new Test();
     String myName = "James Bond";
     test.hello(myName);
  }
}

hello(String name) 的方法定义声明了一个名为 name 的 String参数。在 main 方法中,我们通过传递参数myName 来调用 hello 方法。

所以参数是占位符,其中参数是方法的实际值。

于 2022-03-01T11:22:02.597 回答
-1
  • 参数
    • 已经“内置”到函数中的值。
    • 可以更改参数,以便该功能可用于其他用途。
  • 论据
    • 函数的输入
    • 影响函数结果的变量。

来源

于 2020-05-13T00:55:18.017 回答