groovy 花括号与方括号

ef1yzkbh  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(352)

我不知道Groovy/Grails示例中的花括号和方括号有什么区别:

[bookInstanceList:Book.list()]

以及:

{
    subject blank: false
    content blank: false, maxSize: 2000
}

有谁能帮我吗?
谢谢你

kcrjzv8t

kcrjzv8t1#

Groovy列表与Map:

第一个是Map,groovy中的[](方括号)用于制作列表或Map。

列表示例:

  • [] -空列表
  • [1,2,3,4] -整数值列表
  • ['Angular','Groovy','Java']-字符串列表
  • [1,2,[3,4],5] -嵌套列表
    Map示例:
  • [:] -一张空白Map。
  • [key:“value”] -使用键和值Map
    漂亮的闭合方式:

第二个是groovy DSL。我们可以使用多种策略来创建DSL,但在Grails域约束块中使用了groovy闭包。您可以找到有关DSL here和闭包here的更多详细信息。

7ivaypg9

7ivaypg92#

正如评论中所指出的,第一个是Map,第二个是closure
它们在任何方面都不相同或相似。您似乎感到困惑,因为您假定closure是某种类型的名称值对。在本例中,这似乎是由于DSL的约束。
为了进一步理解这个closure是如何处理的,你需要更深入地研究DSL的约束,看看它是如何使用诸如缺少的方法和缺少的属性之类的东西的。

相关问题