def foo(map, name) {
println(map)
}
foo("bar", hi: "bye")
Run Code Online (Sandbox Code Playgroud)
将打印
[hi:bye]
Run Code Online (Sandbox Code Playgroud)
现在我有一张我希望传递给foo的先前地图.在伪代码中,类似于:
def otherMap = [hi: "world"]
foo("bar", hi: "bye", otherMap*)
Run Code Online (Sandbox Code Playgroud)
所以它打印
[hi:world]
Run Code Online (Sandbox Code Playgroud)
这当然不起作用.
此外,尝试仅传递地图混合参数的顺序:
def otherMap = [hi: "world"]
foo("bar", otherMap)
Run Code Online (Sandbox Code Playgroud)
将打印
bar
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
您正在寻找传播地图运算符.
def foo(map, name) {
println(map)
}
foo("bar", hi: "bye")
def otherMap = [hi: "world"]
foo("bar", hi: "bye", *:otherMap)
foo("bar", *:otherMap, hi: "bye")
Run Code Online (Sandbox Code Playgroud)
打印:
["hi":"bye"]
["hi":"world"]
["hi":"bye"]
Run Code Online (Sandbox Code Playgroud)