将 Go 结构转换为字符串

Converting Go struct to string

我的代码:

type Link struct {
    Href string `xml:"href,attr"`
}

var html Link = ""
func (s Entry) String() string {
  links := string(s.Link)
}

我解析了整个 XML 文档以获取链接和文本,现在我想将所有解析的数据附加到 html 变量中以在本地主机上构建一个漂亮的视图。但是 s.Link 无法转换为字符串数据类型可能是因为类型转换只支持基本数据类型,有解决方案吗?

现场演示:http://play.golang.org/p/7HRHusXLe2

在你的情况下,你不想附加结构 Linkstring 表示,你只需要它的 Href 字段,它已经是类型 string.

func (s Entry) LinkString() string {
    return s.Link.Href
}

另请注意,如果您使用非指针接收器 Entry,您的方法 LinkString() 将接收该结构的副本。在这种情况下这不是问题,只是慢了一点,因为必须制作副本。

如果你的结构变大,最好使用指针接收器:*Entry:

func (s *Entry) LinkString() string {
    return s.Link.Href
}

另请注意,您甚至不需要访问 URL 文本的方法,因为您的字段(Entry.LinkLink.Href)已导出,因为它们以大写开头-大小写字母,因此您可以像这样简单地引用它:

// e is of type Entry:
url := e.Link.Href
// url is of type string