groovy
  1. groovy
  2. GROOVY-3797

Provide an index or counter for each/find/findAll/collect and friends by taking into accounts the arity of closures passed to them

    Details

    • Type: Improvement Improvement
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: groovy-jdk
    • Labels:
      None
    • Number of attachments :
      0

      Description

      As per the suggestion on this thread:
      http://www.nabble.com/generic-%27withIndex%27-method-%28like-Ruby-1.9-with_index%29-ts25631548.html

      The idea is to have access to an index or counter in all the functional methods iterating over collections, by using an additional parameter in the closure passed in parameter of those methods. That way, we don't need to add as many *withIndex variant methods to the existing ones, but rather provide a convenient convention.

      Some examples with each, and similarly by replacing each with find/findAll/any/every/collect and perhaps inject:

      list.each { elem -> ... }
      list.each { elem, counter -> ... }
      
      map.each { entry -> ... }
      map.each { key, value -> ... }
      map.each { key, value, counter -> ... }
      

        Issue Links

          Activity

          Paul King made changes -
          Field Original Value New Value
          Link This issue is related to GROOVY-1182 [ GROOVY-1182 ]
          Guillaume Laforge made changes -
          Link This issue duplicates GROOVY-1182 [ GROOVY-1182 ]
          Guillaume Laforge made changes -
          Link This issue is related to GROOVY-2838 [ GROOVY-2838 ]
          blackdrag blackdrag made changes -
          Fix Version/s 1.6.x [ 15537 ]
          Guillaume Laforge made changes -
          Fix Version/s 1.7.x [ 15538 ]
          blackdrag blackdrag made changes -
          Component/s groovy-jdk [ 10750 ]
          Paul King made changes -
          Resolution Won't Fix [ 2 ]
          Assignee Paul King [ paulk ]
          Status Open [ 1 ] Resolved [ 5 ]

            People

            • Assignee:
              Paul King
              Reporter:
              Guillaume Laforge
            • Votes:
              16 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: