我是新来的语言。我想在基于 go 语言中的条件迭代列表时从列表中删除元素。例如,我想从列表中删除重复的元素。代码如下。package mainimport ( "container/list" "fmt")var sMap map[int]boolfunc main() { l := list.New() l.PushFront(4) l.PushFront(5) l.PushFront(7) l.PushFront(6) l.PushFront(5) l.PushFront(4) l.PushFront(5) l.PushFront(7) l.PushBack(9) l = removeDuplicate(l) for e := l.Front(); e != nil; e = e.Next() { fmt.Println(e.Value) }}func removeDuplicate(l *list.List) *list.List { sMap = make(map[int]bool) for e := l.Front(); e != nil; e = e.Next() { m := e.Value.(int) fmt.Println("VALUE : ", m) if sMap[m] == true { fmt.Println("Deleting ", e.Value) l.Remove(e) } else { fmt.Println("Adding New Entry", e.Value) sMap[m] = true } } return l}上面的代码只遍历列表直到第一次删除。我试图在迭代同一个列表时删除该元素。这就是它不起作用的原因。任何人都可以在 golang 中建议一个列表迭代器吗?
1 回答
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消