为什么 Javascript 文档在语法上将函数的参数定义为嵌套数组?
Why Javascript docs define function's parameter as a nested array in syntax?
我不知道怎么问这个问题,但在我研究 Javascript 或 Node.js 的文档时,他们正在定义类似这样的语法。
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
这里所有的参数(value1[, value2[, ...[, valueN]]]
)都被定义为嵌套数组。
它的实际含义,以及
为什么他们不只是定义这样的东西。
var new_array = old_array.concat(...values)
或
var new_array = old_array.concat(valueList)
它与数组无关(除了你的例子是从数组类型的方法文档中获取的)。方括号表示 可选参数 ,这是大多数编程语言和工具中使用的约定。例如ls
命令的帮助:
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
... 或 cp
:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
你的例子意味着函数至少接受一个参数,更多的参数可以添加,用逗号分隔。根据 the docs,这些值可以是 个数组 and/or 个值,以连接成一个新数组 。因此,每个 valueN
可以是一个数组或要添加到返回数组的值。
之所以不使用...
表示法,可能是因为方括号已经使用了几十年,并且被广泛使用,所以无论是什么主题,读者都会熟悉语法。
我不知道怎么问这个问题,但在我研究 Javascript 或 Node.js 的文档时,他们正在定义类似这样的语法。
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
这里所有的参数(value1[, value2[, ...[, valueN]]]
)都被定义为嵌套数组。
它的实际含义,以及
为什么他们不只是定义这样的东西。
var new_array = old_array.concat(...values)
或
var new_array = old_array.concat(valueList)
它与数组无关(除了你的例子是从数组类型的方法文档中获取的)。方括号表示 可选参数 ,这是大多数编程语言和工具中使用的约定。例如ls
命令的帮助:
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
... 或 cp
:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
你的例子意味着函数至少接受一个参数,更多的参数可以添加,用逗号分隔。根据 the docs,这些值可以是 个数组 and/or 个值,以连接成一个新数组 。因此,每个 valueN
可以是一个数组或要添加到返回数组的值。
之所以不使用...
表示法,可能是因为方括号已经使用了几十年,并且被广泛使用,所以无论是什么主题,读者都会熟悉语法。