一尘不染

是否支持动态变量?

go

我想知道是否可以在Go中动态创建变量?

我在下面提供了一个伪代码来说明我的意思。我将新创建的变量存储在一个切片中:

func method() {
  slice := make([]type)
  for(i=0;i<10;i++)
  {
    var variable+i=i;
    slice := append(slice, variablei)
  }
}

在循环的最后,切片应包含变量:variable1,variable2 … variable9


阅读 183

收藏
2020-07-02

共1个答案

一尘不染

Go没有动态变量。大多数语言中的动态变量都实现为Map(哈希表)。

因此,您可以在代码中包含以下地图之一,该地图可以完成您想要的操作

var m1 map[string]int 
var m2 map[string]string 
var m3 map[string]interface{}

这是执行您的操作的Go代码

http://play.golang.org/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())
}
2020-07-02