1

这个问题听起来很奇怪,但我不知道有什么更好的说法。我正在使用 goquery,我在里面switch-case

switch{
    case url == url1:
        doc.Find("xyz").Each(func(i int,s *goquery.Selection){
            a,_ := s.Attr("href")
            if a== b{
                //I want to break out of the switch case right now. I dont want to iterate through all the selections. This is the value.
                break
            }
        })
}

使用break给出以下错误: break is not in a loop

我应该在这里使用什么来打破开关情况,而不是让程序遍历每个选择并在每个选择上运行我的函数?

4

1 回答 1

2

您应该使用 goquery 的EachWithBreak方法来停止迭代选择:

switch {
    case url == url1:
        doc.Find("xyz").EachWithBreak(func(i int,s *goquery.Selection) bool {
            a,_ := s.Attr("href")
            return a != b
        })
}

只要您的开关盒中没有剩余代码,您就不需要使用break.

于 2017-04-01T11:52:12.450 回答