我有一個像這樣的常量枚舉const(PROD_BASEURL="http://prod.abc.com"TEST_BASEURL="http://test.abc.com")在我的函數之一中,我將環境作為輸入,并希望相應地訪問 const 成員。envUrl := env + "_BASEURL"這里 env 是輸入,可以是 PROD 或 TEST?,F在,如何通過envUrl變量訪問 const 成員而不直接指定 PROD_BASEURL?
2 回答

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
對我來說,你的用例似乎需要一個map。有了地圖,您可以像這樣編寫代碼:
baseurls := map[string]string{
? ? "PROD": "http://prod.abc.com",
? ? "TEST": "http://test.abc.com",
}
envUrl := baseurls[env]

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
實現此目的的一種方法是使用結構體而不是常量:
type EnvSet struct {
BaseURL string
// other env specific setting
}
var Prod =EnvSet{BaseURL:"...",...}
var Dev = EnvSet{BaseURL:"...",...}
var selectedEnv EnvSet
switch env {
case "prod": selectedEnv=Prod
case "dev": selectedEnv=Dev
}
- 2 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消