附加切片未按预期工作

刚接触 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)

}

不知道什么持续了很长时间,但似乎我无法达到我的预期..


繁花不似锦
浏览 176回答 1
1回答

肥皂起泡泡

当您将切片分配给 时last,您正在制作切片的副本,因此当您附加时,它不会反映在外部seperated切片中。像这样直接赋值:last := len(seperated)-1seperated[last] = append(seperated[last], wp)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go