variables - 是否支持动态变量?

标签 variables dynamic go

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

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

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

在循环结束时, slice 应包含变量:variable1、variable2...variable9

最佳答案

Go 没有动态变量。 大多数语言中的动态变量都是作为 Map (Hashtable) 实现的。

因此您可以在代码中使用以下 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())
}

关于variables - 是否支持动态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147978/

相关文章:

python - 自动化无聊的事情 : Why don't these Python functions do the same thing?

iOS 和 Go - 使用 NSURLSession 保持事件状态

go - DynamoDB UpdateItem失败

google-app-engine - 在 Google App Engine 上从 main.go 传递出去时上下文值发生变化

使用动态数组的 C++ 逻辑错误

python - 使用 str.rjust 和变量格式化

Python:将全局对象声明为实例变量

javascript - 与 mailto 一起使用的 JS 变量未更新

ruby - 我可以让 ruby​​ 打印动态方法的源代码吗?

java - 动态方法中的 InvokingTargetException