【发布时间】:2010-05-31 09:23:03
【问题描述】:
def foo(map, name) {
println(map)
}
foo("bar", hi: "bye")
将打印
[hi:bye]
现在我有一张以前的地图,我想传递给 foo。在伪代码中,类似于:
def otherMap = [hi: "world"]
foo("bar", hi: "bye", otherMap*)
以便打印
[hi:world]
这当然行不通。
此外,尝试仅传递地图会混合参数的顺序:
def otherMap = [hi: "world"]
foo("bar", otherMap)
将打印
bar
我该如何解决这个问题?
【问题讨论】:
-
您如何期望
foo("bar",otherMap)打印除bar之外的其他内容?您正在打印第一个参数。 -
@Geo 是的,我想知道同样的事情(但我是 Groovy 的新手,所以不知道)。特别是我对 OP 中的以下内容感到困惑: foo("bar", hi: "bye") 打印 [hi: "bye"] 而不是 "bar" (但如果您更改为 foo("bar", [hi :“再见”]))它按预期工作。有谁能指教一下吗?