以下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]
爲1..-1
?
另外[1, 2, 3, 4, 5]
範圍1..<-2
似乎是錯誤的。
爲什麼會發生這種情況?
不應該的範圍是從0而不是1開始,如果您要包括所有要素,但最後? (在你的例子中,你總是排除第一個元素) – epidemian
在我的情況下,我也不想要第一個元素,但這不是我的問題的主要觀點。 –