2014-06-25 36 views
0

我想了解下面的代码示例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

谢谢。

回答

2

[][0..0]必须调用List.subList(from, to),它会抛出一个AIOOBE。在[][0]调用一个常规的方法getAt(ix)至极安全

BTW [].first()也导致NoSuchElementException

我认为,该行为是相当一致