Groovy支持闭包参数的位置析构函数。这适用于有序集合(例如List或Tuple(。
例如,在Python中,我可以执行以下操作:
li = [('John', 20, '360 244 4210'), ('Bill', 22, '360 244 4211'), ('Susan', 19, '360 244 4214')]
for name, age, phone_num in li:
register(name, age)
make_a_call(name, phone_num)
但在Groovy中,我必须这样做:
li = [['John', 20, '360 244 4210'], ['Bill', 22, '360 244 4211'], ['Susan', 19, '360 244 4214']]
li.each {
name = it[0]
age = it[1]
phone = it[2]
register(name, age)
make_a_call(name, phone_num)
}
在Groovy中,有什么方法可以像Python一样打开列表的包装吗?
def list = [['John', 20, '360 244 4210'], ['Bill', 22, '360 244 4211'], ['Susan', 19, '360 244 4214']]
list.each { name, age, phone ->
println([name, age, phone])
}
// → [John, 20, 360 244 4210]
// → [Bill, 22, 360 244 4211]
// → [Susan, 19, 360 244 4214]