Go 如何动态调用变量?
我有两个变量:Go 如何动态调用变量?,go,Go,我有两个变量: somethingA := 123 somethingB := 456 这两个变量通过系统填充,假设您有第三个变量: type := "A" 对于第三个变量,您希望调用somethingA,但不希望如下所示: if type == "A" { return somethingA }else{ return somethingB } 但有点像: return something{type} 像这样的事情在围棋中可能发生吗 多谢各位 像这样的事情在围棋中可能发
somethingA := 123
somethingB := 456
这两个变量通过系统填充,假设您有第三个变量:
type := "A"
对于第三个变量,您希望调用somethingA,但不希望如下所示:
if type == "A" {
return somethingA
}else{
return somethingB
}
但有点像:
return something{type}
像这样的事情在围棋中可能发生吗
多谢各位
像这样的事情在围棋中可能发生吗
没有
所有这样做的方法都可以归结为您展示的解决方案。使用地图
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"])
}
只是提醒一下:类型是围棋中的关键字。所以你不能这样命名你的变量。我不确定你的例子在问什么,比如这些问题,等等。请谁否决了我的问题,让我们在这里解释一下原因。@JimB-例如,你必须对数组和sou进行检查,但其中一个是循环。在我上面,你只能写两个循环,这真的不好。如果可能的话,最好传递数组名,然后执行循环。如果可能的话,绝对可以,但如果不行?不管怎样,我同意你的观点,这是唯一正确的方法,除了使用不需要任何条件的映射之外。@Adrian映射只是隐藏了条件。不完全正确。虽然maps的实现肯定涉及到一些分支,但它根本不是同一个实现。这是一个基于哈希表的完全不同的实现。