в листе только те, которые удовлетворяют определенному условию. Но как только я удаляю какой-либо элемент, итерация обрывается. 
                  
                  
                  
                  
                  
                  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) }
Обсуждают сегодня