Groovy可停止命令链
在groovy中是否可以创建一个不能完全执行的命令链? 例如:Groovy可停止命令链,groovy,dsl,Groovy,Dsl,在groovy中是否可以创建一个不能完全执行的命令链? 例如: when(booleanVar).then(returnExpression) 如果booleanVar为false,我根本不希望执行returnExpression,因为它可能是对某个外部服务的方法调用,所以我只希望在必要时执行它。所以我希望“when”方法能够控制是否应该执行链的其余部分。 我想在DSL中使用它,所以它的使用方式如下: when booleanVar then returnExpression 我宁愿避免使用
when(booleanVar).then(returnExpression)
如果booleanVar为false,我根本不希望执行returnExpression,因为它可能是对某个外部服务的方法调用,所以我只希望在必要时执行它。所以我希望“when”方法能够控制是否应该执行链的其余部分。
我想在DSL中使用它,所以它的使用方式如下:
when booleanVar then returnExpression
我宁愿避免使用闭包,因为这样语法的可读性就会降低。如果when()将false转换为null,您可以这样使用,但我认为一旦去掉括号,它就不适合在DSL中轻松阅读,甚至不确定没有括号它是否能正常工作。但这是有可能的
when(booleanVar)?.then(returnExpression)
我最终使用AST转换来更改调用:
when(booleanVar).then(returnExpression)
为此:
when({booleanVar}).then({returnExpression})