以下 Groovy 代码
lines = ['0','1','2','3','4','5']
println lines[1..lines.size()-1]
println lines[1..-1]
println lines[1..<lines.size()-1]
println lines[1..<-1]
println lines[1..<-2]
println lines[1..-2]
产生这个输出:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
[1, 0]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
因为-1
是列表中最后一个元素的索引,所以前两个是有意义的(Groovy 中的范围包括结束元素,而不是像 Java 中的其他任何地方一样省略它:-()
第 3 行是所需的输出(没有第一个和最后一个元素的列表)。
我很担心输出#4:为什么我会得到[1, 0]
for 1..-1
?
同样[1, 2, 3, 4, 5]
对于范围1..<-2
似乎是错误的。
为什么会这样?