Groovy函数没有括号和以大写字母开头的参数,导致错误
我有一个类,它包含一个成分列表,并提供一个函数服务,现在可以打印这些成分Groovy函数没有括号和以大写字母开头的参数,导致错误,groovy,Groovy,我有一个类,它包含一个成分列表,并提供一个函数服务,现在可以打印这些成分 class CookDSL { List<String> ingredientsToCook CookDSL(List<String> ingredients){ ingredientsToCook=ingredients } void SERVE(Closure closure){closure(ingredientsToCook)} } 输出: [X, Y, Z]
class CookDSL {
List<String> ingredientsToCook
CookDSL(List<String> ingredients){
ingredientsToCook=ingredients
}
void SERVE(Closure closure){closure(ingredientsToCook)}
}
输出:
[X, Y, Z]
startup failed:
Script1.groovy: 16: unexpected token: Ingredients @ line 18, column 10.
COOK Ingredients SERVE {it-> println(it)}
^
1 error
[X, Y, Z]
为了保持上述DSL的一致性,我尝试将配料命名为配料,Groovy不喜欢
def Ingredients = ["X", "Y", "Z"]
COOK Ingredients SERVE {it-> println(it)}
输出:
[X, Y, Z]
startup failed:
Script1.groovy: 16: unexpected token: Ingredients @ line 18, column 10.
COOK Ingredients SERVE {it-> println(it)}
^
1 error
[X, Y, Z]
如果配料变量用括号括起来,则效果良好:
def Ingredients = ["X", "Y", "Z"]
COOK(Ingredients) SERVE {it-> println(it)}
输出:
[X, Y, Z]
startup failed:
Script1.groovy: 16: unexpected token: Ingredients @ line 18, column 10.
COOK Ingredients SERVE {it-> println(it)}
^
1 error
[X, Y, Z]
不确定我是否做错了什么,或者Groovy在某些情况下是否限制使用以大写字母开头的变量
Groovy版本:2.3.8正如@tim_yates所说的,大写字母可能会让解析器感到困惑,可能它会将它们理解为类标识符。我通常看起来像
类以大写字母开头,变量不应以大写字母开头