如何通过变量间接访问 const enum 的成员?

我有一个像这样的常量枚举


const(

PROD_BASEURL="http://prod.abc.com"

TEST_BASEURL="http://test.abc.com"

)

在我的函数之一中,我将环境作为输入,并希望相应地访问 const 成员。


envUrl := env + "_BASEURL"

这里 env 是输入,可以是 PROD 或 TEST。现在,如何通过envUrl变量访问 const 成员而不直接指定 PROD_BASEURL?


慕神8447489
浏览 77回答 2
2回答

慕村9548890

对我来说,你的用例似乎需要一个map。有了地图,您可以像这样编写代码:baseurls := map[string]string{    "PROD": "http://prod.abc.com",    "TEST": "http://test.abc.com",}envUrl := baseurls[env]

噜噜哒

实现此目的的一种方法是使用结构体而不是常量:type EnvSet struct {   BaseURL string   // other env specific setting}var Prod =EnvSet{BaseURL:"...",...}var Dev = EnvSet{BaseURL:"...",...}var selectedEnv EnvSetswitch env {  case "prod": selectedEnv=Prod  case "dev": selectedEnv=Dev}
打开App,查看更多内容
随时随地看视频慕课网APP