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)

07-28 10:50