0
我需要在我的代码中内部维护一些数据:一个ID嵌套深度较深的级别,在提供父级道具的名称时要进行访问。如果在JavaScript编写例如,我会做一些事情,如:在Go使用结构中存储/访问嵌套数据?
var data = {
1111: {
la1: {
lb1: 1343584765,
lb2: 1545438458
},
la2: {
lb1: 1263268535,
lb2: 1468904679
}
},
2222: {
la1: {
lb1: 1645078365,
lb2: 1457732458
},
la2: {
lb1: 1682974682,
lb2: 1782975685
}
}
}
,然后访问这样的(是顶道具必须是一个int):
data[1111]['la1']['la2'] //gets 1343584765
,但我不能看看如何用Go结构来构建这个结构,而且我阅读的大部分内容都建议不要这样做。唯一的其他办法,我可以看到的是去使用这个逻辑,但感觉凌乱,这可能会变得越来越大,因此难以维持:
func getVal(
varA int,
varB string,
varC string,
) int {
if varA == 1111 {
if varB == "la1" {
if varC == "lb1" {
return 1343584765
}
if varC == "lb2" {
return 1545438458
}
}
if varB == "la2" {
if varC == "lb1" {
return 1263268535
}
if varC == "lb2" {
return 1468904679
}
}
}
if varA == 2222 {
....etc
,然后用访问:
getVal(1111, "la1", "lb1") //gets 1343584765
大感谢任何能够帮助我的人!
什么是你的围棋数据结构是什么样子? –
另外,是1111,la1,lb1等有意义的硬编码属性。或者你是否更喜欢(伪代码)Map(int,Map(string,Map(string,int))'。奇怪的结构,可能与我们分享你想达到的目标。 –
@NathanCooper这就是我的问题。我会用什么样的数据结构来替换Go'if'逻辑,我在'getVal'中使用? – tripRev