code: public static Object findResult(Object self, Object defaultResult, Closure condition) {
          Object result = findResult(self, condition);
          if (result == null) return defaultResult;
          return result;
      }
docs: Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns the defaultResult.
  <p>
  <pre class="groovyTestCase">
  int[] numbers = [1, 2, 3]
  assert numbers.findResult(5) { if(it {@code >} 1) return it } == 2
  assert numbers.findResult(5) { if(it {@code >} 4) return it } == 5
  </pre>
  
  @param self          an Object with an iterator returning its values
  @param defaultResult an Object that should be returned if all closure results are null
  @param condition     a closure that returns a non-null value to indicate that processing should stop and the value should be returned
  @return the first non-null result of the closure, otherwise the default value
  @since 1.7.5