【问题标题】:How to dynamically call variable?如何动态调用变量?
【发布时间】:2019-04-09 05:46:48
【问题描述】:

我有两个变量:

somethingA := 123
somethingB := 456

这两个变量通过系统填充,假设您有第三个变量:

type := "A"

第三个变量你想调用 somethingA 但不像下面这样:

if type == "A" {
    return somethingA
}else{
    return somethingB
}

但类似:

return something{type}

这样的事情在go中可能吗?

谢谢

【问题讨论】:

标签: go


【解决方案1】:

使用地图

package main

import (
    "fmt"
)

func main() {
        x:=make(map[string]int)
        x["SomethingA"]=123
        x["SomethingB"]=456
    fmt.Println(x["SomethingA"])
    fmt.Println(x["SomethingB"])
}

【讨论】:

  • 如果可能,绝对是,但如果不是?
  • 不管我怎么同意你,这都是正确的做法
【解决方案2】:

这样的事情在go中可能吗?

没有。

执行此类操作的所有方法都归结为您展示的解决方案。

【讨论】:

  • 除了使用地图,不需要任何条件。
  • @Adrian 地图只是隐藏条件句。
  • 不完全是。虽然地图的实现肯定涉及分支,但它根本不是同一个实现。它是基于哈希表的完全不同的实现。
猜你喜欢
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 2023-03-24
  • 2013-02-09
  • 2017-08-04
相关资源
最近更新 更多