编辑:发布了一篇github杂志,一天后被jashkenas关闭了。所以外卖本质上是“按预期工作”。
coffee> arr
[ 0,
1,
2,
3,
'A',
'K' ]
coffee> arr[...]
[ 0,
1,
2,
3,
'A',
'K' ]
coffee> arr[..]
[ 0,
1,
2,
3,
'A',
'K' ]根据医生的说法,这些应该是不同的。
两点(3.6),范围包括(3,4,5,6);三点(3..6),范围不包括末端(3,4,5)。
生成的两个slice语句是相同的。在我看来,..应该产生.slice(0),...应该产生.slice(0, -1),是我遗漏了什么,还是看到了bug?
1.7.1
发布于 2014-04-21 15:56:05
然后,这些文件接着说:
切片索引具有有用的缺省值。省略的第一个索引默认为零,省略的第二个索引默认为数组的大小。
这和你看到的是一致的。数组的长度为6,所以:
[..]等价于[0..6],后者将编译为.slice(0,7)[...]等价于[0...6],后者将编译为.slice(0,6)对于长度为6的数组,.slice(0,6)和.slice(0,7)都返回所有元素,因此它们都等同于.slice(0),这是[..]和[...]都编译的内容。
如果省略的第二个索引默认为数组的大小减去1,则会出现所期望的情况,但情况并非如此。
https://stackoverflow.com/questions/23184903
复制相似问题