Groovy getAt运算符变异列表

Groovy getAt运算符变异列表,groovy,Groovy,以下代码: def a = [4,10,6].iterator().sort(); println a[1]; println a[1]; 生成以下输出: 6 null 奇怪的是,似乎一个[1]正在改变列表。该文件记录在哪里?应该是 def a = [4,10,6].sort(); println a[1]; println a[1]; 没有迭代器 然后它产生你所期望的 6 6 它根本没有变异任何东西![…].iterator.sort的结果是java.util.ArrayList$Li

以下代码:

def a = [4,10,6].iterator().sort();
println a[1];
println a[1];
生成以下输出:

6
null
奇怪的是,似乎一个[1]正在改变列表。该文件记录在哪里?

应该是

def a = [4,10,6].sort();
println a[1];
println a[1];
没有迭代器

然后它产生你所期望的

6
6
它根本没有变异任何东西![…].iterator.sort的结果是java.util.ArrayList$ListItr类型,然后将其与索引1一起使用,在迭代器上调用getAt方法,因此将迭代器移位2个元素,迭代器位于最后位置。然后再次执行该操作,并尝试从最后一个+1位置读取该项,所以它返回null

它的文档应该是

def a = [4,10,6].sort();
println a[1];
println a[1];
没有迭代器

然后它产生你所期望的

6
6
它根本没有变异任何东西![…].iterator.sort的结果是java.util.ArrayList$ListItr类型,然后将其与索引1一起使用,在迭代器上调用getAt方法,因此将迭代器移位2个元素,迭代器位于最后位置。然后再次执行该操作,并尝试从最后一个+1位置读取该项,所以它返回null

文件