在Golang中,我们可以将某些字符串值声明为变量名吗?

huangapple go评论89阅读模式
英文:

in Golang, can we declare some string value to variable name?

问题

我有一些带有变量名的切片,像这样:

strList := ['abcd', 'efgh', 'ijkl']

我想将它们转换为变量名(以便对某些对象进行迭代)。我想知道的是如何将字符串值转换为变量名(在代码中)。
strList[0]这样的写法似乎是不允许的...

谢谢你的帮助!

英文:

I have slices with some variable names

like

strList := ['abcd', 'efgh', 'ijkl']

and I want to make it to variables names(to make some object iterably)
What I curious is that how can I make strings value to variable name. (in code)
like strList[0] seems not allowed....

Thanks for your help!

答案1

得分: 1

由于您的字符串将在运行时读取,而变量名将在编译时检查,所以实际上不可能根据字符串创建一个变量名。

但是,您可以创建一个映射,用于存储具有字符串键的值。例如,如果您想要在某个东西中保存整数值,并且可以使用值"abcd""efgh"等进行查找,您可以声明:

myMap := map[string]int {
  "abcd": 1,
  "efgh": 2,
  "ijkl": 3,
}

然后,您可以使用myMap["abcd"] // 1等方式读取这些值。

英文:

Since your strings will be read at runtime and your variable names will be checked at compile time, it's probably not possible to actually create a variable with a name based on a string.

However, you can make a map that stores values with string keys. For example, if you wanted to hold integer values inside something you can look up using the values "abcd", "efgh", etc., you would declare:

myMap := map[string]int {
  "abcd": 1,
  "efgh": 2,
  "ijkl": 3,
}

and you could then read those values with e.g. myMap["abcd"] // 1.

答案2

得分: -5

我认为你想要的是类似于 http://play.golang.org/p/M_wHwemWL6 的东西。

请注意,切片字面量的语法使用 {} 而不是 []。

英文:

I think you want something like http://play.golang.org/p/M_wHwemWL6 ?

Note that the syntax for a slice literal uses {}'s not []'s.

huangapple
  • 本文由 发表于 2014年1月29日 10:24:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/21420890.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定