Object.metaClass.until = { cond, command = {it} ->
delegate = delegate as List
def result = []
for (def i in delegate) {
if (!cond(i)) { result << command(i) }
else { break }
}
return result
}
def a = [1,2,3,4,5,6,8,1]
def b = [1.0,2d,3f,4.0,5f,6d,8d,1d]
def c = "123456781"
def d = true
println a.until({it == 6})
println a.until({it == 6}) { it + it }
println b.until({it == 6d}) { it + it }
println c.until({it == '6'}) { it + it }
println d.until({it == false}) { it }
see: http://groovyconsole.appspot.com/script/476001
No comments:
Post a Comment