Как получить все элементы списка без последнего элемента?

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

Почему это происходит?

17
задан Aaron Digulla 9 May 2012 в 12:33
поделиться