次の 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
、最初の 2 つは理にかなっています (Groovy の範囲には、Java の他の場所のように終了要素を省略するのではなく、終了要素が含まれます :-( )
行番号 3 は目的の出力です (最初と最後の要素のないリスト)。
出力 #4 が心配です: なぜ を得る[1, 0]
のです1..-1
か?
また[1, 2, 3, 4, 5]
、範囲1..<-2
が間違っているようです。
なぜそれが起こるのですか?