我正在学习一个教程来学习Go中的Rest API。有这段代码。
func removeBook(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
id, _ := strconv.Atoi(params["id"])
for i, item := range books {
if item.ID == id {
books = append(books[:i], books[i+1:]...)
}
}
}
特别是这部分。books = append(books[:i], books[i+1:]...)
OK,将一个或多个项追加到切片(在本例中为结构切片)。 获取从开始到 的所有内容,不包括 。然后表示后面的下一项,在右侧添加冒号表示从那里到结束的所有内容。因此,这意味着我们将所有项目都保留到排除,然后在 之后获取所有项目。这意味着我们正在排除/删除 ,这就是功能点。appendbooksbookbooks[:i]iii+1iiiiiremoveBook
我有这么多的逻辑,但是这三个点在那里做什么?我知道可变参数函数中使用了三个点,但是为什么在这个追加函数中我们需要三个点呢?
当我删除这3个点时,我的编辑说“不能使用books[i + 1:](类型[]Book的值)作为要追加的参数中的Book值”。
如果您想查看完整的代码,请在此要点中。
慕沐林林
慕哥6287543
相关分类