読者です 読者をやめる 読者になる 読者になる

メモ:goquery の EachWithBreak

概要

goquery の Each は目的のものが見つかってもループを切り上げないが,EachWithBreak なら適当なタイミングでループを切り上げられる.

コード

doc.Find("select#my_selection").Find("option").
    EachWithBreak(func(_ int, s *goquery.Selection) bool { // ← Each の場合は bool 返さない func
        if _, ok := s.Attr("selected"); ok {
            fmt.Println("selected! ", s.Text())
            return false  // ← ここで false を返すとループを切り上げる
        }
        return true
})