Следующий код 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
кажется неверным.
Почему это происходит?