IntRange で .each{} を呼び出すと、各整数ではなく範囲が返されます。質問する

IntRange で .each{} を呼び出すと、各整数ではなく範囲が返されます。質問する

ちょっとおかしな期待を抱いてしまったようです... 1 から 10 までの数字を反復処理したいのです。while ループとして、次のようになります:

def countMe = 1
while (countMe<11) {
  println countMe
  countMe++
}

次のようなことも行われると予想していました:

[1..10].each { println it }

しかし、実際には範囲内のIntRangeそれぞれではなく が出力されます。数値リストの それぞれを取得するために、私の構想に (構文的に) 最も近い方法は何でしょうか?Integer[x..y].each{}

ベストアンサー1

角括弧ではなく丸括弧を使用してください:

(1..10).each{println it}

[1..10]単一の範囲を含む長さ 1 のリストです。

おすすめ記事