【发布时间】:2021-03-26 12:57:57
【问题描述】:
我在弄清楚如何完成我正在寻找的东西时遇到了一些麻烦。假设我有 5 个不同的字符串变量: 字符串 string1 = "A"
字符串 string2 = "B"
字符串 string3 = "A"
字符串 string4 = "B"
String string5 = "A"
我想要做的是遍历这 5 个变量,如果它们等于 B,我想将它们设置为 A。我尝试过的是这样的:
[string1,string2,string3,string4,string5].each {
if (it == "B"){
//don't know what to put here
need to set variable = "A" here
}
}
我不知道如何在分配的闭包中获取实际的变量名。也许我没有正确搜索我想要做的事情,但我需要能够通过这个循环将 strin2 和 string4 设置为“A”。
我知道我可以做 5 个 if 语句,但我知道必须有更好的方法。
【问题讨论】:
-
您想更改
string1等变量指向的对象,还是想保留该引用原样并在列表中放置一个新值来代替旧值(这不会对string1引用产生任何影响)? -
我想改变它指向的东西,从A到B。我不在乎原来的值是什么。
-
@jcattau,这取决于你如何声明那些 string1-string5。如果这些是某些对象/地图/脚本的成员/属性 - 那么
obj['string1'] = "B"将执行分配。如果它们是局部变量 - 那就没有机会了。
标签: loops variables groovy variable-assignment