в листе только те, которые удовлетворяют определенному условию. Но как только я удаляю какой-либо элемент, итерация обрывается.
func main() {
queue := list.New()
for i := 0; i < 4; i++ {
queue.PushBack(i)
}
for element := queue.Front(); element != nil; element = element.Next() {
log.Println(element)
log.Println(element.Value)
queue.Remove(element)
log.Println(element)
}
}
2018/09/28 13:52:18 &{0xc0000721b0 0xc000072150 0xc000072150 0}
2018/09/28 13:52:18 0
2018/09/28 13:52:18 &{<nil> <nil> <nil> 0}
что нужно изменить?
Вот недавно спрашивал тут это. Не знаю какой каноничный ответ, но я решил это новый заходом в цикл через goto
// Clear all elements by iterating var next *Element for e := l.Front(); e != nil; e = next { next = e.Next() l.Remove(e) }
Обсуждают сегодня