Wouldn't this be nice?

Reinier Zwitserloot reinier at zwitserloot.com
Wed Nov 11 09:37:31 PST 2009


Taking a page from python, why not add to one of the common dump spots for
functions, say, Collections, the following method:

public static void Iterable<Integer> range(final int i) {
    return new Iterable<Integer>() {
        public Iterator<Integer> iterator() {
            return new Iterator<Integer>() {
                private int p = 0;
                public boolean hasNext() {
                    return p < i;
                }
                public Integer next() {
                    if (p < i) return p++;
                    throw new NoSuchElementException();
                }
                public void remove() {
                    throw new MethodNotSupportedException();
                }
            };
        }
    };
}


then all you need to do is:

import static java.util.Collections.range;

for (int i : range(50)) { /* do stuff */ }

Josh: I'm a bit meh on your suggestion. Is that really so much of an
improvement over:

for (char c : "someString".toCharArray())?

probably yes, but between the extra burden on the JLS and potential
confusion between chars and codepoints, it doesn't strike me as a big loss.

--Reinier Zwitserloot




On Wed, Nov 11, 2009 at 5:36 PM, Paulo Levi <i30817 at gmail.com> wrote:

> for(int i : infos.length)
>
> for(long i : 35L)
>
> or even
>
> for(int i : -30)
>
> (0 being always the start, the second element the end.)
>
> I think it would. It would make the for loop actually useful if
> iterating over more than one (indexed) data structure in the same
> loop.
> The ideas come late and later.
>
>



More information about the coin-dev mailing list