def foo(map, name) {
println(map)
}
foo("bar", hi: "bye")
将打印
[hi:bye]
现在我有一张以前的 map ,我希望将其传递给 foo。在伪代码中,类似于:
def otherMap = [hi: "world"]
foo("bar", hi: "bye", otherMap*)
这样就可以打印了
[hi:world]
这当然行不通。
此外,尝试仅传递映射会混合参数的顺序:
def otherMap = [hi: "world"]
foo("bar", otherMap)
将打印
bar
我该如何解决这个问题?
最佳答案
您正在寻找展开 map 运算符。
def foo(map, name) {
println(map)
}
foo("bar", hi: "bye")
def otherMap = [hi: "world"]
foo("bar", hi: "bye", *:otherMap)
foo("bar", *:otherMap, hi: "bye")
打印:
["hi":"bye"]
["hi":"world"]
["hi":"bye"]
关于groovy - groovy 中的 splat 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942574/