1

I'm new to Go and I'm trying to learn it by making a repost bot. Anyway, I'm having a problem that I don't know how to solve exactly.

I have the following Struct:

type Post struct {
    Title string
    Url   string
}

And I'm trying to get these values using goQuery, like this:

var title = doc.Find(".title.title.may-blank").Each(func(i int, s *goquery.Selection) {
        fmt.Println("Title:", s.Text())
})

But when I try to set the value to the Post struct, I get this error:

cannot use title (type *goQuery.Selection) as type string in field value. 

Ok, that makes sense, but how can I cast it to string? I've tried s.Text() but it doesn't works. I thought about making a function that returns a string, but I'm not sure if this would work.

I'll appreciate if someone can help me, thanks in advance!

danibrum
  • 459
  • 8
  • 21

1 Answers1

1

The issue is that .Each returns the original *goquery.Selection so that you can chain calls. If you need to get the string value, you just assign it directly, like this:

var title string
doc.Find(".title.title.may-blank").Each(func(i int, s *goquery.Selection) {
    title = s.Text()
})
dave
  • 62,300
  • 5
  • 72
  • 93