2014-09-25 48 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