code: public static <T> T[] dropWhile(T[] self, @ClosureParams(FirstParam.Component.class) Closure<?> condition) {
          int num = 0;
          BooleanClosureWrapper bcw = new BooleanClosureWrapper(condition);
          while (num < self.length) {
              if (bcw.call(self[num])) {
                  num += 1;
              } else {
                  break;
              }
          }
          return drop(self, num);
      }
docs: Create a suffix of the given array by dropping as many elements as possible from the
  front of the original array such that calling the given closure condition evaluates to
  true when passed each of the dropped elements.
  <pre class="groovyTestCase">
  def nums = [ 1, 3, 2 ] as Integer[]
  assert nums.dropWhile{ it {@code <=} 3 } == [ ] as Integer[]
  assert nums.dropWhile{ it {@code <} 3 } == [ 3, 2 ] as Integer[]
  assert nums.dropWhile{ it != 2 } == [ 2 ] as Integer[]
  assert nums.dropWhile{ it == 0 } == [ 1, 3, 2 ] as Integer[]
  </pre>
  
  @param self      the original array
  @param condition the closure that must evaluate to true to
  continue dropping elements
  @return the shortest suffix of the given array such that the given closure condition
  evaluates to true for each element dropped from the front of the array
  @since 1.8.7