Groovy中类似Python的拆包列表



例如,在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一样打开列表的包装吗?

Groovy支持闭包参数的位置析构函数。这适用于有序集合(例如List或Tuple(。
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]

最新更新