代码之家  ›  专栏  ›  技术社区  ›  Sumit Murari

golang结构字段与切片语义:“has a”slice of structs vs“is a”slice of structs

  •  0
  • Sumit Murari  · 技术社区  · 6 年前

    我有以下表示网页的结构

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

    我想将一个网站表示为一个网页集合。我正在使用此结构,但它不像我要查找的那样:

    type website struct {
        []Webpage
    }
    

    我把它读作“一个网站 一块网页”。我想要一个代表“一个网站”的类型 一块网页”。

    我用什么类型来表示 关系而不是 结构字段的关系?

    2 回复  |  直到 6 年前
        1
  •  4
  •   blobdon    6 年前
    type Website []Webpage
    

    Website 是片 Webpage

        2
  •  1
  •   blobdon    6 年前

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

    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
    }