【发布时间】:2015-08-28 06:59:22
【问题描述】:
我有一个包含成分列表的类,并提供了一个 SERVE 函数来打印这些成分。
class CookDSL {
List<String> ingredientsToCook
CookDSL(List<String> ingredients){
ingredientsToCook=ingredients
}
void SERVE(Closure closure){closure(ingredientsToCook)}
}
这是返回上述类实例的 DSL 函数:
CookDSL COOK(List<String> ingredients){
new CookDSL(ingredients)
}
现在我可以使用如下所示的 DSL 并通过打印所有成分来正常工作:
def ingredients = ["X", "Y", "Z"]
COOK ingredients SERVE {it-> println(it)}
输出:
[X, Y, Z]
为了保持上述 DSL 的一致性,我尝试将成分命名为成分,而 Groovy 不喜欢它。
def Ingredients = ["X", "Y", "Z"]
COOK Ingredients SERVE {it-> println(it)}
输出:
startup failed:
Script1.groovy: 16: unexpected token: Ingredients @ line 18, column 10.
COOK Ingredients SERVE {it-> println(it)}
^
1 error
如果成分变量用括号括起来,它就可以正常工作:
def Ingredients = ["X", "Y", "Z"]
COOK(Ingredients) SERVE {it-> println(it)}
输出:
[X, Y, Z]
不确定我是否做错了什么,或者 Groovy 是否在某些情况下限制使用以大写字母开头的变量?
Groovy 版本:2.3.8
【问题讨论】:
-
类以大写开头,变量不应该
标签: groovy