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