gpt4 book ai didi

groovy - 通过名称访问变量值作为 String (groovy)

转载 作者:行者123 更新时间:2023-12-01 14:38:20 25 4
gpt4 key购买 nike

我已经做了一些研究,但还没有找到适用于我的案例的工作代码。我有两个名为 testtest2 的变量,我想将它们以 [test:valueof(test), test2:valueof(test2 )]

我的代码如下:

def test="HELLO"
def test2="WORLD"
def queryText = "\$\$test\$\$ \$\$test2\$\$ this is my test"

def list = queryText.findAll(/\$\$(.*?)\$\$/)

def map = [:]
list.each{
it = it.replace("\$\$", "")
map.putAt(it, it)
}

queryText = queryText.replaceAll(/\$\$(.*?)\$\$/) { k -> map[k[1]] ?: k[0] }

System.out.println(map)
System.out.println(queryText)

输出:

output

期望的输出:

"HELLO WORLD this is my test"

我想我需要像 map.putAt(it, eval(it))

这样的东西

编辑

这是我获取输入的方式。代码进入'test'脚本

右边的是脚本中的变量名,左边的列是值(稍后将是动态的)

enter image description here enter image description here

最佳答案

你快到了。
解决方案不是将值放入单独的变量中,而是将它们放入脚本绑定(bind)中。

在开头添加这个(删除变量testtest2):

def test="HELLO"
def test2="WORLD"
binding.setProperty('test', test)
binding.setProperty('test2', test2)

并改变这个:

{ k -> map[k[1]] ?: k[0] }

为此:

{ k ->  evaluate(k[1]) }

关于groovy - 通过名称访问变量值作为 String (groovy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43513029/

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