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)
}
不知道走了多久,但似乎我不能达到我的期望。
最佳答案
当您将 slice 分配给last
时,您正在制作 slice 的副本,因此当您追加 slice 时,该副本不会反映在外部seperated
slice 中。
像这样直接分配它:
last := len(seperated)-1
seperated[last] = append(seperated[last], wp)