Как разбить goquery Каждый цикл в Go

Не могли бы вы помочь мне разорвать цикл goquery Каждый цикл? Я использовал "return", но он не выходит из цикла, просто передайте итерацию... Как я могу разорвать цикл Every в следующем коде:

doc.Find("td").Each(func(i int, s *goquery.Selection) {
    summary := s.Text()
    if summary == "--" {
        //I want to break the Each loop here
    }
}

2 ответа

Решение

Использовать EachWithBreak метод

doc.Find("td").EachWithBreak(func(i int, s *goquery.Selection) bool {
    summary := s.Text()
    if summary == "--" {
        return false
    }
    return true
})

В goquery 1.7.1 говорится: «Он идентичен Every, за исключением того, что можно выйти из цикла, вернув false в функции обратного вызова».

Поэтому вам нужно вернуть false, чтобы разорвать цикл

Другие вопросы по тегам