Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

“parameter”与“argument”

  这两个单词都翻译为“参数”,但是“参数”究竟是个啥呢?虽然这个是编程入门的问题,但是就是有很多人不知道“参数”到底是个啥。在JavaScript中,函数可以使用“arguments”来获取传入的参数列表,这里为什么是“arguments”不是“parameters”呢?
  编程是上个世纪才诞生的技术,而且是诞生于西方国家的,所以很多东西的汉语描述都存在问题。这个“参数”问题也是编程入门时必须搞明白的一个问题。很多文章中对“parameter”和“argument”的区分是把它们作为形式参数和实际参数来区分的。虽然有点这样的感觉,但是我的观点和这不同。
  我们先看看数学函数中的用法。“y=kx”是一个一次函数,x是自变量,k是斜率,我们都是这么描述它的吧?这里的x就是“argument”,而k就是“parameter”,这显然不是形式参数和实际参数那么简单。“argument”通常可以理解为函数的自变量,而“parameter”则理解为函数的配置参数,比如一条过原点的直线需要斜率这个参数来描述它。
  买电脑或其它数码产品的时候都需要看配置吧?比如我要买个320G容量的硬盘,这里的容量就是硬盘的一个参数(parameter),320G是这个参数的值。当然硬盘还有很多参数,比如转速、缓存,等。这些参数就是硬盘的设备参数(device parameters),说白了就是它的配置,我们看设备的配置单就是看这些配置对应的值。这些东西全都是“parameter”,和“argument”没有半毛钱关系。这个“argument”被翻译成“参数”本来就很牵强。
  在编程中,我们也有函数,但是它和数学上的函数是不同的概念。就说上面的“y=kx”,把这个函数写成编程语言的函数我们通常会把k和x都作为函数的“参数”,因为它们都需要给定一个值。这样,“参数”的概念本身就混乱了。对于程序中的函数而言,k和x都是我们需要输入的东西,也就是这个函数的自变量,所以编程中函数的参数我们普遍都说“arguments”。这就是为什么JavaScript中函数内取参数列表使用arguments,很多编程语言的main函数都习惯性的使用argc和argv这两个名字作为形式参数。另外,“参数”作为“parameter”描述只存在于一些特殊的情况下,比如还是这个“y=kx”。由于k在数学函数中是“parameter”,所以编程中虽然把它当做“argument”来使用,但是为了便于理解,在注释中还是经常会用“parameter”来描述它。
  总之,编程语言中的参数都是“argument”。所谓形式参数和实际参数的关系是:形式参数是变量,实际参数是形式参数的值。如果你已经对编程入门了,就没必要纠结这东西,这只是便于编程入门罢了。最后顺便提一下,“parameter”的发音是“[pərǽmətər]”,百度和有道词典都是坑爹的。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^