Поле структуры Голанга против семантики среза: "имеет" срез структур против "- это" срез структур " - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть следующая структура, представляющая веб-страницу

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

Я хочу представить веб-сайт как коллекцию веб-страниц.Я использую эту структуру, но она не похожа на то, что я ищу:

type website struct {
    []Webpage
}

Я читаю это как "веб-сайт имеет часть веб-страниц".Я хочу, чтобы тип, который представляет "веб-сайт является кусок веб-страниц".

Какой тип я использую для представления отношения is вместо , имеющего отношение структурного поля?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018
type Website []Webpage

Website - это кусочек Webpage

0 голосов
/ 27 декабря 2018

Конечно, это возможно.Ваши структуры должны быть такими:

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

type Website struct {
  webpages []Webpage
}

Так что Website будет содержать срез Webpages.Это общая концепция при работе с базой данных.Если вы хотите взять больше примеров и узнать больше о концепции, вы можете взглянуть на эту документацию GORM

Надеюсь, что это поможет.

Редактировать:
Вкл.Книга, за которой вы следите, там уже предоставлен пример: https://www.golang -book.com / books / intro / 9 # section3

type MultiShape struct {
    shapes []Shape
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...