JavaScript 评估如何在 groovy 或 grails 中使用



我想为现有变量赋值,但变量的名称是动态的。我该怎么做

def a1 = 0;
def b = 1;
eval("a${b} =1;");
print a1

这里不需要javascript:

def name = 'someName';
def value = 'someValue';
new GroovyShell(this.binding).evaluate("${name} = '${value}'")
assert someName == value;

虽然这并不能完全回答您的问题,但解决此问题的一种简单方法是将动态变量作为映射键删除...... 避免需要评估它们

def b = 1
def map = [:]
map."a${b}" = 1
assert map."a${b}" == 1
println(map)   // result is   [a1:1]

最新更新