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