Coffeescript数组范围没有界限
我正在学习coffeescript和我的一些代码使用非常方便的数组范围语法。
我的理解是使用[a..b]
包含结果中的索引a
和b
,并且[a...b]
在结果中排除索引b
。
另外,我还以为[a..]
会到达数组的末尾, [..b]
会从数组的开头开始。
现在我的问题是,我有一些代码需要采取整个数组除了最后一个元素。 我定义它是
parameters[...]
认为这将排除最后一个元素(我没有指定一个端点,所以它应该走到最后, ...
是独占的)。 但是在我的testing中,它看起来像
parameters[...] == parameters[..]
所以我最终不得不写
parameters[...-1]
这对我来说很丑陋
我做错了什么,或者这是语言的错误/故意的一部分?
答案是[…]和数组之间没有区别? ,这似乎是一个有意的默认行为。 从文档:
切片索引有有用的默认值。 省略的第一个索引默认为零,省略的第二个索引默认为数组的大小。