英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论