我不确定你想要实现什么,所以这里有几种可能性:
如果您想将第二张地图的内容添加到第一张地图中,leftShift 运算符是可行的方法:
def foo(name, map) {
println(map)
}
def otherMap = [hi: "world"]
foo("bar", [hi: "bye"] << otherMap)
如果您想通过名称访问参数,请使用Map:
def foo(Map args) {
println args.map
}
def otherMap = [hi: "world"]
foo(name:"bar", first:[hi: "bye"], map:otherMap)
如果你想打印所有或者仅最后一个参数,可以使用可变参数:
def printLast(Object[] args) {
println args[-1]
}
def printAll(Object[] args) {
args.each { println it }
}
def printAllButName(name, Map[] maps) {
maps.each { println it }
}
def otherMap = [hi: "world"]
printLast("bar", [hi: "bye"], otherMap)
printAll("bar", [hi: "bye"], otherMap)
printAllButName("bar", [hi: "bye"], otherMap)
foo("bar",otherMap)
打印出来的不是bar
?你正在打印第一个参数。 - Geo