【问题标题】:How does this work? Groovy Map creation with nested closures.这是如何运作的?使用嵌套闭包创建 Groovy Map。
【发布时间】:2011-10-15 09:10:49
【问题描述】:

我对 Groovy 比较陌生,最近使用 Map 创建了一个罐头消息进行测试。我使用闭包创建了它(不完全理解,这就是我所做的,并将其更改为标准 Map 表示法)。现在我想了解为什么闭包符号会起作用。

因此,以下两个地图已正确创建。我的问题是 Groovy 如何将嵌套闭包解释为映射?

地图符号:

Map m = [
  person : [
    first : "Flo",
    middle : "Over",
    last : "Stack"
  ],
  address : [
    street1 : "123 Any Street",
    street2 : "2nd Floor",
    city : "Anytown",
    state : "YR",
    zip : "99999"
  ]
]

闭包符号:

Map m = {
  person {
    first "Flo"
    middle "Over"
    last "Stack"
  }
  address {
    street1 "123 Any Street"
    street2 "2nd Floor"
    city "Anytown"
    state "YR"
    zip "99999"
  }
}

【问题讨论】:

  • 我在 groovy 控制台中运行了这段代码,得到了 GroovyCastException

标签: groovy map closures


【解决方案1】:

Groovy 有一个用于创建树结构的特殊概念,称为 Builder。您可以在这里找到更多信息:http://groovy.codehaus.org/Builders

【讨论】:

  • 我会说它回答了我的问题,但我也知道它使用的是 Builder 符号。我想我需要改写/缩小我的问题,然后重新发布。谢谢。
  • 你确定吗,通常在使用构建器时需要实例化构建器或使用as Type
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 2019-10-08
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多