在groovy中的splat运算符?

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

我怎样才能解决这个问题?

解决方法

您正在寻找传播地图运算符.

def foo(map,hi: "bye")

def otherMap = [hi: "world"]
foo("bar",*:otherMap)
foo("bar",*:otherMap,hi: "bye")

打印:

["hi":"bye"]
["hi":"world"]
["hi":"bye"]

相关文章

1.下载安装SuperScript插件-> jEdit Plugin Central 2.修改<jedit.home>/startup/startup.bsh...
c/c++ pascal basic java c# perl    自由王国的体现 groovy     lisp    波兰式, C C++ P...
目前的脚本语言已经很多了,包括Python、Ruby以及对应于java平台的Jython和JRuby。前一段时间对Python有...
看了点groovy的ml archives,争论不休的EOS/EOL问题。 C-style的语言本没有EOS问题,语法规定显式的...
昨天终于挑灯看完了http://www-106.ibm.com/developerworks/java/library/j-alj08034.html,很多年以后...
1.   从例子开始 a)        目的:演示Groovy的一些简单特性。   b)        代码: ...