calling .each{} on IntRange returns the range not each integer

13,807

Use parentheses not brackets:

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

[1..10] is a list of length 1 containing a single range.

Share:
13,807
Mikey
Author by

Mikey

I am learning Grails. It is awesome.

Updated on June 11, 2022

Comments

  • Mikey
    Mikey about 2 years

    I think I've got some funny expectations... I want to iterate the numbers from 1 to 10. As a while loop it goes like this:

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

    I was expecting that the following would do this also:

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

    But it actually prints the IntRange, not each Integer in the range. What is the (syntactically) closest way to my [x..y].each{} fantasy to get each of a list of numbers?