4

私は夢中になっているに違いありませんが、Groovy findIndexValues が返されるのはなぜList<long>ですか? インデックスを整数で取得できますか?

foo = ['a','b','d','e', 'e','e']
indices  = foo.findIndexValues { it == 'e'}
indices.each { println foo[it] }

foo コレクションはアクセス インデックスとして long を処理できないため、上記はクラッシュします。あるべき言語を使用していませんか?

4

2 に答える 2

5

それがその方法の仕組みです。イテレータを使用してコレクションをトラバースし、一致するインデックスを long として追跡します。理論的には、より大きなコレクションをサポートしていますがInteger.MAX_VALUE、これが実際に役立つかどうかは疑わしいです。

次の方法で回避できます。

indices.each { println foo[it as int] }
于 2012-12-06T20:19:39.173 に答える