我想知道是否可以在Go中动态创建变量?
I was wondering if it is possible to dynamically create variables in Go?
我在下面提供了一个伪代码来说明我的意思。我将新创建的变量存储在切片中:
I have provided a pseudo-code below to illustrate what I mean. I am storing the newly created variables in a slice:
func method() { slice := make([]type) for(i=0;i<10;i++) { var variable+i=i; slice := append(slice, variablei) } }在循环结束时,切片应包含以下变量:variable1,variable2 ... variable9
At the end of the loop, the slice should contain the variables: variable1, variable2...variable9
推荐答案Go has没有动态变量。 大多数语言中的动态变量都实现为Map(哈希表)。
Go has no dynamic variables. Dynamic variables in most languages are implemented as Map (Hashtable).
因此,您可以在代码中包含以下将要执行的地图之一
So you can have one of following maps in your code that will do what you want
var m1 map[string]int var m2 map[string]string var m3 map[string]interface{}这里的Go代码可以完成您的工作
here is Go code that does what you what
play.golang/p/d4aKTi1OB0
package main import "fmt" func method() []int { var slice []int for i := 0; i < 10; i++ { m1 := map[string]int{} key := fmt.Sprintf("variable%d", i) m1[key] = i slice = append(slice, m1[key]) } return slice } func main() { fmt.Println(method()) }更多推荐
是否支持动态变量?
发布评论