为了账号安全,请及时绑定邮箱和手机立即绑定

如何在迭代golang中的相同列表时从列表中删除元素

如何在迭代golang中的相同列表时从列表中删除元素

Go
长风秋雁 2021-09-10 15:27:57
我是新来的语言。我想在基于 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信