Groovy集合 - 范围操作

时间:2014-06-25 08:31:42

标签: groovy

我试图理解以下代码示例中的行为

groovy:000> [][0]
===> null
groovy:000> [][0..0]
ERROR java.lang.IndexOutOfBoundsException:
toIndex = 1
        at groovysh_evaluate.run (groovysh_evaluate:2)
        ...
groovy:000> 

为什么第一个代码段返回null,而第二个代码段抛出IndexOutofBoundsException。我的期望是这与第一个代码片段的结果一致。

我正在使用groovy编译器2.1.4

感谢。

1 个答案:

答案 0 :(得分:2)

[][0..0]必须调用引发AIOOBE的List.subList( from, to )[][0]调用groovy的getAt(ix)方法,这是安全的

btw [].first()也会在NoSuchElementException

中产生结果

我认为,这种行为非常一致