7
나는 영어가 처음이다. 목록에서 요소를 제거하는 동안 go 언어로 조건을 기반으로 목록을 반복하고 싶습니다. 예를 들어 목록에서 중복 된 요소를 제거하고 싶습니다. 코드는 아래와 같습니다.골란에서 같은 목록을 반복하면서 목록에서 요소를 제거하는 방법
package main
import (
"container/list"
"fmt"
)
var sMap map[int]bool
func 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의 목록 반복자를 제안 할 수 있습니까?
귀하의 코드는 불완전하며 컴파일되지 않습니다. [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve) – peterSO
@peterSO - 전체 코드를 추가했습니다. – Dany