2014-09-25 81 views
0

golang的新功能。我試着去存儲所有從我們的應用程序端發送過來的航點,但與100批次大小,這裏是我的代碼追加片不按預期工作

json.NewDecoder(r.Body).Decode(payload) 

// seperate waypoints into groups 
limit := 100 
seperated := [][]*waypoint.Waypoint{} 

// payload is from api call, basically plain json data 
for i, wp := range payload.Batch { 
    if i%limit == 0 { 
     seperated = append(seperated, []*waypoint.Waypoint{}) 
    } 
    last := seperated[len(seperated)-1] 
    last = append(last, wp) 
} 

不知道什麼地方長,但似乎我不能跟我想象..

回答

1

當您將其分配給last時,您正在創建一個片段的副本,因此當您追加時,不會反映在seperated片段中。

直接給它像這樣:

last := len(seperated)-1 
seperated[last] = append(seperated[last], wp) 
+0

多麼愚蠢是我 – yujingz 2014-09-25 17:52:12