gpt4 book ai didi

groovy - 需要 Groovy 语法帮助从字符串生成闭包

转载 作者:行者123 更新时间:2023-12-04 16:50:21 24 4
gpt4 key购买 nike

我正在尝试从字符串生成闭包。闭包内的代码引用了一个 DSL 函数 build()。我得到的错误暗示 Groovy 正在尝试执行闭包而不是仅仅声明它。正确的语法是什么?以下是我已经尝试过的一些结构。

sh = new GroovyShell() 
cl = sh.evaluate( '{ build("my job") }' }
=> Ambiguous expression could be either a parameterless closure expression or an isolated open code block;

sh = new GroovyShell()
cl = sh.evaluate( 'L: { build("my job") }' }
=> No signature of method: Script1.build() is applicable ...

cl = Eval.me( 'L: { build("my job") }' }
=> No signature of method: Script1.build() is applicable ...

cl = Eval.me( 'L: { com.flow.FlowDelegate.build("my job") }' }
=> No such property: com for class: Script1

我试图遵循的示例来自: Load closure code from string in Groovy

最佳答案

如何从脚本返回闭包?

Eval.me("return { build('my job') } ")

你打算用那个 L: 做什么?返回 map ?如果是这样,您可以使用方括号:

groovy:000> a = Eval.me("[L: { build('test for') }]")
===> {L=Script1$_run_closure1@958d49}
groovy:000> a.L
===> Script1$_run_closure1@958d49

关于groovy - 需要 Groovy 语法帮助从字符串生成闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17265748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com