我是一个 Golang 的新手,我正在尝试根据另一个列表中的元素从一个列表中删除元素。
例如:
输入列表:urlList := []string{"test", "abc", "def", "ghi"}
需要删除的元素列表:remove := []string{"abc", "test"}
期望输出的列表:urlList := []string{"def", "ghi"}
这是我的尝试:
func main() {
urlList := []string{"test", "abc", "def", "ghi"}
remove := []string{"abc", "test"}
loop:
for i, url := range urlList {
for _, rem := range remove {
if url == rem {
urlList = append(urlList[:i], urlList[i+1:]...)
continue loop
}
}
}
for _, v := range urlList {
fmt.Println(v)
}
}
但是它并没有按照我的预期工作。我不知道我漏了什么。
redo
相对应的关键字(类似于continue
,但它不会重新执行循环测试或增量),那么在用redo
替换continue
后,代码将是正确的。但现在...好吧,总还有goto
:) - hobbs