我正在学习coffeescript,我的一些代码使用非常方便的数组范围语法。
我的理解是,使用[a..b]
在结果中包含索引a
和b
,[a...b]
会在结果中排除索引b
。
另外,我认为[a..]
会到达数组的末尾,[..b]
将从数组的开头出发。
现在我的问题是,我有一些代码需要占用除最后一个元素之外的整个数组。我定义它是
parameters[...]
认为这将排除最后一个元素(我没有指定一个端点,所以它应该结束,而...
是独占的)。但是在我的测试中它看起来像
parameters[...] == parameters[..]
所以我最终不得不写
parameters[...-1]
对我来说看起来很难看
我做错了什么,或者这是该语言的错误/故意部分?
答案 0 :(得分:1)
正如no difference between [..] and [...] for array?所述,这似乎是故意违约行为。来自文档:
切片索引具有有用的默认值。省略的第一个索引默认值 为零,省略的第二个索引默认为数组的大小。