所以,我有这个问题:
#!/usr/bin/env groovy
package com.fsfs.fdfs.fsf.utils
class GlobalVars {
// TEST-DEV
static String MY_URL1 = "https://myurl.com"
static String MY_URL2 = "https://:6443"
static String MYURLS_TEST = "${MY_URL1} ${MY_URL2}"
}
因此,我希望根据环境对URL进行迭代。
例如:在此,ENV是TEST,但也可以是DEV、PROD等
for( Name in GlobalVars."MYURLS_${ENV}".split(/\s+/)) {
}
我不确定如何实现这个目标。基本上,我希望迭代一个动态名称的变量。该变量至少包含2个字符串
4条答案
按热度按时间zsohkypk1#
你可以这样做...
mrfwxfqh2#
可以使用CharacterIterator方法current()获取当前字符,使用next()向前移动一个位置。StringCharacterIterator提供了CharacterIterator的实现。
或者对于较简单的任务可以
创建一个while循环来检查字符串的每个索引,或者创建一个for循环,如下所示
zzzyeukh3#
在Groovy中,迭代字符串是开箱即用的:
.每个{}闭包将遍历字符串的所有字符。
用一个更经典的for循环也可以达到同样的效果:
两种方法都行。
nszi6y054#
我不确定创建一个用空格分隔的值列表来再次解析它有什么好处。使用列表Map似乎更容易。
没有正则表达式,没有动态生成的属性名称。如果你想避免环境名称中的拼写错误,你可以把它们放到一个枚举中。