是否支持动态变量? [英] Are dynamic variables supported?

查看:65
本文介绍了是否支持动态变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否可以在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

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())
}

这篇关于是否支持动态变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆