首页 > 解决方案 > 时髦的。获取部分值被参数化的参数值

问题描述

嗨,我想做这样的事情......

DEV_HOST = "some hostname"
DEV_INST = "2"
DEV_TEST_HOST = "some other hostname"
DEV_TEST_INST = "3"

get_values(DEV_TEST_HOST)

def get_values(environment) {
  println environment
  println ${environment}_INST
}

期望的输出应该是:

some other hostname
3

甚至可能吗?谢谢!

标签: bashgroovy

解决方案


您不能将值传递给函数,然后在调用该函数时反省变量的名称(或者说,如果可能,那么这只是太多级别的过度杀伤)。

假设您有某种地图(例如环境),您可以传入您感兴趣的密钥。然后对密钥进行所有转换,然后向环境询问密钥。例如

def env = [
  DEV_TEST_HOST: "some other hostname" ,
  DEV_TEST_INST: "3",
]
                           
get_values(env, "DEV_TEST_HOST")
                             
def get_values(env, key) {
  println env[key]        
  println env[key.replace('HOST', 'INST')]
}

推荐阅读