如果我对正确的groovy语句使用一个断言,但是我省略了括号,那么“断言”会抛出带有“意外令牌”消息的MultipleCompilationErrorsException
。
assert
(至少if
)的行为类似于方法而不是语句,因为嵌套函数调用不接受省略括号。
因此,当我有一个正确的示例并将其用作断言时,我会得到一个错误。如果没有assert
,我希望assert
接受正确的常规语句。
我没有在Stackoverflow,Groovy JIRA或通过互联网搜索中发现此问题。
assert null == println('foo')
或
println 'foo'
两者均输出foo
(如预期),但是
assert null == println 'foo'
抛出
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script_from_command_line: 1: unexpected token: foo @ line 1, column 24.
assert null == println 'foo'
^
1 error
答案 0 :(得分:0)
FYI:assert
也是return
,import
等之类的关键字。
参见groovy doc。
我们知道,我们不能省略括号,例如return
之类的关键字。请参阅文档omitting_parentheses。不幸的是,它仅讨论了不提及任何关键字的方法:(。
return test("String") // will work
return test "String" // won't
我希望你明白了。