当口头谈论方法时,我永远不确定是否使用单词参数或参数或其他东西 . 无论哪种方式,其他人都知道我的意思,但这些条款的历史是什么?
我是一名C#程序员,但我也想知道人们是否在不同的语言中使用不同的术语 .
为了记录,我告诉我要读Code Complete因为我已经有了Steve McConnell这本奇妙书的副本 . )
摘要
普遍的共识似乎是它确定了精确的术语;那么你也可以使用“形式参数/参数" and "实际参数/参数”来消除歧义 .
当口头谈论方法时,我永远不确定是否使用单词参数或参数或其他东西 . 无论哪种方式,其他人都知道我的意思,但这些条款的历史是什么?
我是一名C#程序员,但我也想知道人们是否在不同的语言中使用不同的术语 .
为了记录,我告诉我要读Code Complete因为我已经有了Steve McConnell这本奇妙书的副本 . )
普遍的共识似乎是它确定了精确的术语;那么你也可以使用“形式参数/参数" and "实际参数/参数”来消除歧义 .
30 回答
它们在C中的使用都没有太大差异,这两个术语都在实践中使用 . 大多数参数通常与函数一起使用 . 使用函数调用语句传递的值称为参数,参数将是复制函数定义中的值的变量(称为形式参数) .
在上面的代码中,
num1
和num2
是形式参数,a
和b
是实际参数 .这个例子可能有帮助 .
始终记住: - 在收到参数时传递参数 .
简单:
P ARAMETER→ P LACEHOLDER(这意味着占位符属于命名函数并在函数体中使用)
A RGUMENT→ A CTUAL VALUE(这意味着函数调用传递的实际值)
参数和参数
资料来源:Absolute C,Walter Savitch
那是,
从逻辑上讲,我们实际上是在谈论同样的事情 . 但我认为一个简单的比喻将有助于解决这一难题 .
如果隐喻可以被称为各种连接点,我们可以将它们等同于墙上的插头点 . 在这种情况下,我们可以考虑如下参数和参数;
Parameters 是插件的插座,可以采用各种不同的形状 . 但只有某些类型的插头适合它们 .
Arguments 将是插入插头/插座以激活某些设备的实际插头 .
参数是函数接收的变量 . 它们在函数声明中可见 . 它们包含变量名及其数据类型 . 参数是传递给另一个函数的实际值 . 这就是为什么我们可以在函数调用中看到它们 . 它们只是没有数据类型的值
或者在方法的可选参数的情况下,可能更简单地记住这样:
parameter
是参数,它的值,"argument"
是参数:)根据约瑟夫的阿拉巴哈里的书“C#in a Nutshell”(C#7.0,p.49):
在一些人类语言(afaik意大利语,俄语)中,同义词被广泛用于这些术语 .
parameter = formal parameter
argument = actual parameter
在我的大学教授使用两种名称 .
函数/方法的 parameters 描述了它用于计算结果的值 .
arguments 是在函数/方法的特定调用期间分配给这些参数的值 .
Parameter 在函数声明中是可变的 .
Argument 是传递给函数的此变量的实际值 .
在编辑方面,我常常忘记人们如何忘记:结构语言基于自然语言 .
英文
“参数”是占位符 . 他们用口语设置了响应格式 . 根据定义,它是呼叫方,限制响应 .
“论证”是正在考虑的立场 . 你争论你的观点:你考虑一个论点 .
主要区别
论证的主题作用是代理人 . 参数的主题作用是接受者 .
相互作用
把这个论点看作是男性的一部分,使参数成为女性的一部分 . 参数进入参数 .
用法
参数通常用于定义中 . 参数通常用于调用 .
问题
Finish the sentence to make it less dissonant.
(A)说到定义:
将使用什么参数[]?
这个参数[]会是什么[]?
(B)说到调用:
您将使用什么参数,[]?
[]将[]这个参数是什么?
答案
(一个)
on / in / against / with this参数
参数......采取
(B)
以及一些示例参数
argument(s)...用于/ in / against / with
重叠
你可以想象,在回答之后:用口语,这些词有时会产生相同的反应!
所以,作为一项规则:
通常,如果有人想要参数信息,他们想要更多地了解类型,变量名称等 . 如果您只提供示例参数,它们可能会变得混乱 .
通常,如果有人想要参数信息,他们想知道您传递给函数或其参数的值 .
我想通了,意识到我之前的回答是错的 . 这是一个更好的定义
{想象一盒鸡蛋:一包香肠链接:和一个女仆}这些代表了准备所需功能的元素:(使用任何名称:让我们说烹饪是我的功能的名称) .
女佣是一种方法 .
(你必须__call_或要求这种方法做早餐)(制作早餐的行为是一个叫做烹饪的功能)_
鸡蛋和香肠是参数:
(因为你要吃的鸡蛋数和香肠数是__variable_ . )_
你的决定是一个论点:
它代表您所烹饪的鸡蛋和/或香肠数量的__Value_ .
{}助记符
“当你打电话给女仆并请她做早餐时,她__与你讨论你应该吃多少鸡蛋和香肠 . 她关心你的胆固醇”_
(然后,参数是您声明并决定传递给函数的参数组合的值)
函数的形式参数列在函数声明中,并在函数定义的主体中使用 . 正式 parameter (任何类型)是一种空白或占位符,在调用函数时会填充某些内容 .
argument 是用于填充形式参数的东西 . 当您记下函数调用时,参数将在函数名称后的括号中列出 . 执行函数调用时,插入参数以获取形式参数 .
术语 call-by-value 和 call-by-reference 指的是插入过程中使用的机制 . 在call-by-value方法中,仅使用参数的值 . 在这种按值调用机制中,形式参数是一个局部变量,它初始化为相应参数的值 . 在call-by-reference机制中,参数是一个变量,并使用整个变量 . 在call-by-reference机制中,参数变量替换形式参数,以便对形参数进行的任何更改实际上都是对参数变量进行的 .
这些术语有些可以互换 . 其他答案中描述的区别更恰当地表达了函数体内使用的名称的形式参数和调用站点提供的值的参数(形式参数和参数也很常见) .
还要注意,在数学中,术语参数更常见,参数通常意味着完全不同(尽管参数方程中的参数本质上是两个或更多函数的参数) .
调用函数时,必须填写参数 . 你加入的是论证 .
简单设置:参数进入参数,参数是参数的值 .
更多信息:http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments
因此,Oracle的Java教程定义了这种区别:“参数是指方法声明中的变量列表 . 参数是调用方法时传递的实际值 . 当您调用方法时,使用的参数必须与声明的参数匹配在类型和顺序 . “
有关参数和参数的更详细讨论:https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
Parameter 在函数声明中是可变的 .
Argument 是传递给函数的此变量的实际值 .
已经有关于该主题的维基百科条目(参见Parameter)定义和区分术语参数和论点 . 简而言之,参数是函数/过程/方法签名的一部分,参数是在运行时和/或调用现场为参数提供的实际值 .
维基百科的文章还指出这两个术语经常被同义使用(特别是在非正式地推理代码时):
给定C中的以下示例函数,它添加两个整数,
x
和y
将被称为其参数:在使用
add
的呼叫站点(例如下面所示的示例)中,123和456将被称为呼叫的参数 .此外,一些语言规范(或正式文档)选择仅使用参数或参数,并使用形式和形式等形容词来消除两种情况之间的歧义 . 例如,C / C文档通常将函数参数称为形式参数,将函数调用参数称为实际参数 . 有关示例,请参阅Visual C++ Language Reference中的“Formal and Actual Arguments” .
假设你是一家航空公司 . 你建造了一架飞机 . 你在里面安装座位 . 然后,您将乘客填满飞机并将其发送到某个地方 . 乘客(或者更确切地说,其中一些时空改变版本)下船 . 第二天,你重新使用同一架飞机和相同的座位,但这次乘客不同 .
飞机是你的功能 .
参数是座位 .
争论的焦点是进入这些座位的乘客 .
你需要回到basics.Both构造函数和方法有参数和参数 . 许多人甚至调用构造函数特殊的方法 . 这是一个方法声明 parameters are used :
这就是构造函数声明 parameters are used 的方式:
现在让我们看一个示例代码,用它来计算多维数据集的体积:
所以现在你明白当我们在代码中的某个地方调用构造函数/方法时,我们会传递参数而不是参数.Hence参数仅限于定义逻辑对象的位置,但是当物理参数发挥作用时实际创建了对象 .
甚至更简单......
Arguments in !
Parameters out !
当我们在Java中创建方法(函数)时,这样的方法..
data-type name of the method (data-type variable-name)
在括号中,这些是参数,当我们调用方法(函数)时,我们传递this参数的值,这些参数称为参数 .
是!参数和参数具有不同的含义,可以很容易地解释如下:
函数 Parameters 是函数定义中列出的名称 .
函数 Arguments 是传递给函数(并由函数接收)的实际值 .
Parameters 是用于存储传递给函数以供函数使用的数据的变量 . Arguments 是调用函数时传递给函数的实际数据:
好吧,让我们成为现实:出于所有意图和目的,它们实际上是相同的..........好的但是对于学生来说可能存在技术差异 .
“参数”是一个非常普遍的东西,但是一个参数是一个非常具体的东西 . 太好了,谢谢 - 这真的很有帮助 . 嗯:也许是一个例子 .
A Simple Explanation
我们举一个例子:我有一台机器 . 这是它的工作原理:我把东西放在机器的一端,另一端,一个新的“产品”从机器出来 . 什么进入这台机器?任何东西 . 什么出来?这是一个精致版本的内容 . 我可以将面粉和糖放在这台机器的一端,而另一端则是:蛋糕 . 你明白了 .
现在不同的机器有不同的规则 . 一台特定的机器可能只接受汽油(无铅)作为输入 . 可以说这些机器接受以下类型的参数:汽油 .
An example
什么是争论?参数是放入机器的特定示例 . 假设我的机器将人作为输入(人们将成为这台机器的参数)并且让人们(这是一台多么好的机器!) . 那么什么是一个论点?争论将是实际投入机器的特定人 . 例如如果乔治布什被投入机器,那么争论就是乔治布什 . 如果Kim Kardiashian在那里,那么她也会成为一个争论者 . 因此参数将是人们作为抽象概念,但参数将始终是具有特定名称的特定人员被放入机器中 .
One more example
例如方法(即,将输入变为输出的特定机器)可以接受整数作为参数 . 假设整数5被“传入”函数(即假设您将数字5放入机器中) . 在这种情况下,整数“5”将是参数,和此方法接受的“参数”类型为整数 .
这就是区别 . 简单 .
我希望这有帮助 . 如果你只是评论困惑,我会尝试修复它 .
参数是参数的实例化 .
在Parameter (computer programming) - Wikipedia完美解释
松散地,参数是一个类型,参数是一个实例 .
在函数定义
f(x) = x*x
中,变量x
是一个参数;在函数调用f(2)
中,值``2是函数的参数 .并且Parameter - Wikipedia
在computer programming中,通常使用parameter的两个概念,并且被称为parameters and arguments - 或者更正式地称为 formal parameter 和 actual parameter .
例如,在诸如的函数的定义中
y = f(x) = x + 2,
x是已定义函数的形式参数(参数) .
当为给定值评估函数时,如
f(3): or, y = f(3) = 3 + 2 = 5,
是定义函数评估的实际参数(参数);它是一个给定值(实际值),它代替定义函数的形式参数 . (在临时使用中,术语参数和参数可能会无意中被互换,从而使用不正确 . )
参数是方法定义中的变量 . 调用方法时,参数是传递给方法参数的数据 .
术语参数和参数的使用在程序员甚至作者中都被滥用了 . 处理方法时,term参数用于标识方法签名中的占位符,而术语参数是传递给方法的实际值 .
MCSD Cerfification Toolkit(考试70-483)C#编程,第1版,Wrox,2013
Real-world case scenario