我无法弄清楚Groovy / Grails中的卷曲支架和方括号之间的区别 示例:
[bookInstanceList:Book.list()]
和:
{
subject blank: false
content blank: false, maxSize: 2000
}
任何人都能帮帮我吗? 谢谢
答案 0 :(得分:2)
正如评论中指出的那样,第一个是Map
,第二个是closure
。
它们在任何方面都不相同或相似。您似乎感到困惑,因为您认为closure
是某种类型的名称值对。在这种情况下,它似乎是因为DSL的限制。
为了进一步了解如何处理此closure
,您需要深入研究约束DSL,并了解它如何使用缺少方法和缺少属性等内容。这不是一个简单解释的简单主题。
答案 1 :(得分:1)
Groovy列表和地图:
首先是Map。 groovy中的[](方括号)用于制作列表或地图。
列表示例:
地图示例:
Groovy关闭:
第二个是groovy DSL。我们可以使用多种策略来创建DSL,但在Grails域约束块中使用了groovy闭包。您可以在此处找到有关DSL的更多详细信息
http://docs.groovy-lang.org/latest/html/documentation/core-domain-specific-languages.html