我?guī)滋烨安砰_始學(xué)習(xí)圍棋,所以請耐心等待。:)我正在從帶有g(shù)oquery. 像這樣:package mainimport ( "fmt" "log" "github.com/PuerkitoBio/goquery")func ExampleScrape() { doc, err := goquery.NewDocument("http://lifehacker.com") if err != nil { log.Fatal(err) fmt.Println("fail") } else { fmt.Println("got it") } h1_text := doc.Find("h1").Text() fmt.Println(h1_text)}func main() { ExampleScrape()}這很好用。我無法弄清楚的是如何將doc.Find("h1").Text()選擇轉(zhuǎn)換為數(shù)組或切片,以便我可以迭代它們(或者,更好的是,弄清楚是否goquery有一個函數(shù))。我確定有辦法做到這一點,對嗎?我嘗試這樣做(內(nèi)部func ExampleScrape):var x []stringdoc.Find("h1").Each(func(i int, s *goquery.Selection) { append(x, s.Text())})但它不起作用,因為append在“嵌套”/閉包函數(shù)中仍然是該函數(shù)的本地函數(shù)——它不會返回到func ExampleScrape. 然后我嘗試了這個:x := doc.Find("h1").Each(func(i int, s *goquery.Selection) { return s.Text()})for _, i := range x { fmt.Println(x)}但*goquery.Selection類型不能跨越。有沒有辦法*goquery.Selection像這樣迭代's ?順便說一下,你們這里的人很棒。我總是被我在這里得到的答案所震撼。如果有人可以解釋如何做到這一點,請?zhí)崆案兄x googolplex。:)
1 回答

MMTTMM
TA貢獻1869條經(jīng)驗 獲得超4個贊
我認為如果您使用append
得當(dāng),您的第一次嘗試可能會奏效。 append(x, s.Text())
不會改變 x,而是返回一個新的切片。
所以你真的需要這樣做:
x = append(x, s.Text())
- 1 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報
0/150
提交
取消