gpt4 book ai didi

Groovy 表达式求值

转载 作者:行者123 更新时间:2023-12-01 03:57:39 28 4
gpt4 key购买 nike

一个基本的常规问题。为了使我的代码健壮,我需要使用 groovy 提供的 Eval.me(String)。

但是我有一个问题。当我尝试进行字符串比较时会出现这个问题。

def x='yay'
def y='yay'
def groovyString="'$x' == '$y'"
println Eval.me(groovyString);

这打印为真。

但下面的代码只是说 'yay' 不是一个变量定义,
def x='yay'
def y='yay'
def groovyString="$x == $y"
println Eval.me(groovyString);

我知道为什么会出现这个错误:) 有没有办法可以避免这个问题,而实际上不需要附加 ' '用于字符串比较??

P.S:我需要它不仅仅是字符串才能正常工作。因此担心附加 ' '

最佳答案

您应该可以使用 Binding 来做到这一点。和 GroovyShell
如果我们创建一个带有 Binding 的 GroovyShell 实例,当没有找到属性时,默认返回属性的名称:

def shell = new GroovyShell( new Binding( [:].withDefault{ it } ) )

然后我们可以评估您的 groovyString:
shell.evaluate( groovyString )

基本上评估为第一种形式,如 yay属性被解析为字符串 yay

关于Groovy 表达式求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15876450/

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