Golang结构字段与切片语义:“具有”结构切片与“是”结构切片

时间:2018-12-27 04:03:22

标签: go struct

我具有以下表示网页的结构

type Webpage struct {
    url.URL
    references []url.URL
}

我想将一个网站表示为网页的集合。我正在使用此结构,但感觉不像我在寻找什么:

type website struct {
    []Webpage
}

我将其读为“网站个网页”。我想要一个表示“网站网页的一部分”的类型。

我用什么类型来表示结构域的 is 关系而不是 has 关系?

2 个答案:

答案 0 :(得分:4)

type Website []Webpage

WebsiteWebpage的一部分

答案 1 :(得分:1)

当然可以。您的结构应该像这样。

type Webpage struct {
  url        url.URL
  references []url.URL
}

type Website struct {
  webpages []Webpage
}

因此Website将包含一片Webpages。 这是在处理数据库时的常见概念。如果您想举更多例子并进一步了解该概念,可以看看此GORM Documentation

希望有帮助。

编辑:
在您遵循的书上,已经提供了示例:https://www.golang-book.com/books/intro/9#section3

type MultiShape struct {
    shapes []Shape
}