Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays args和args[…]是否相同?_Arrays_Coffeescript - Fatal编程技术网

Arrays args和args[…]是否相同?

Arrays args和args[…]是否相同?,arrays,coffeescript,Arrays,Coffeescript,我正在阅读,被下面这句话弄糊涂了: args=args[…] 那行是做什么的?来自: 带范围的阵列切片和拼接 范围还可用于提取数组的切片。有两个点(3..6),范围包括在内(3,4,5,6);有三个点(3…6),范围不包括末端(3,4,5)。切片索引具有有用的默认值。省略的第一个索引默认为零,省略的第二个索引默认为数组的大小 所以说array[…]是以下意思的简写: len = array.length array[0 .. len] 这仅仅是数组的一个浅拷贝。这意味着args=args[…]

我正在阅读,被下面这句话弄糊涂了:

args=args[…]

那行是做什么的?

来自:

带范围的阵列切片和拼接

范围还可用于提取数组的切片。有两个点(3..6),范围包括在内(
3,4,5,6
);有三个点(
3…6
),范围不包括末端(
3,4,5
)。切片索引具有有用的默认值。省略的第一个索引默认为零,省略的第二个索引默认为数组的大小

所以说
array[…]
是以下意思的简写:

len = array.length
array[0 .. len]
这仅仅是
数组的一个浅拷贝。这意味着
args=args[…]
只需创建
args
的本地浅层副本,这样
args
就可以在不改变传入的原始数组的情况下进行操作和更改,并且您可以存储对数组的引用,而函数的调用者不会通过传入的原始
args
引用意外地改变数组传递给函数

考虑这个简化的例子:

f = (args) -> args = args[..]
这就是JavaScript:

var f;

f = function(args) {
  return args = args.slice(0);
};
以及:

返回数组部分的浅层副本。
[…]
如果省略
end
,则切片提取到序列的末尾

所以说
array.slice(n)
返回一个
array
的浅拷贝,从索引
n
开始,一直到
array
的末尾,由于数组的索引从零开始,
array.slice(0)
生成整个数组的浅拷贝。

带范围的阵列切片和拼接

范围还可用于提取数组的切片。有两个点(3..6),范围包括在内(
3,4,5,6
);有三个点(
3…6
),范围不包括末端(
3,4,5
)。切片索引具有有用的默认值。省略的第一个索引默认为零,省略的第二个索引默认为数组的大小

所以说
array[…]
是以下意思的简写:

len = array.length
array[0 .. len]
这仅仅是
数组的一个浅拷贝。这意味着
args=args[…]
只需创建
args
的本地浅层副本,这样
args
就可以在不改变传入的原始数组的情况下进行操作和更改,并且您可以存储对数组的引用,而函数的调用者不会通过传入的原始
args
引用意外地改变数组传递给函数

考虑这个简化的例子:

f = (args) -> args = args[..]
这就是JavaScript:

var f;

f = function(args) {
  return args = args.slice(0);
};
以及:

返回数组部分的浅层副本。
[…]
如果省略
end
,则切片提取到序列的末尾

所以说
array.slice(n)
返回一个
array
的浅拷贝,从索引
n
开始,一直到
array
的末尾,由于数组的索引从零开始,
array.slice(0)
生成整个数组的浅拷贝