Как получить доступ к другой переменной структуры, используя другую переменную структуры? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть две структуры, одна из которых содержит одно поле, а другая содержит три поля: -

type User struct {
  Name []CustomerDetails `json:"name" bson:"name"`
}
type CustomerDetails struct {
  Value             string `json:"value" bson:"value"`
  Note              string `json:"note" bson:"note"`
  SendNotifications bool   `json:"send_notifications" bson:"send_notifications"`
}

Я хочу получить доступ к полям CustomerDetails, используя поле структуры User, например

func main() {
  var custName User
  custName.Name.Value = "ABC"
  fmt.Println(custName)
}

Но это дает мне ошибку

custName.Name.Value не определено (тип [] CustomerDetails не имеет поля или значения метода)

Ссылка на игровую площадку

Как я решу эту ошибку? Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы должны добавить CustomerDetails к User.Name следующим образом: https://play.golang.org/p/jk73roZiAC2

var custName User

cd := CustomerDetails{
        Value: "ABC",
        Note: "Test",
    }

custName.Name = append(custName.Name, cd)

fmt.Println(custName)

User.Name - это фрагмент, поэтому вы не можете присвоить ему одно значение.

0 голосов
/ 16 ноября 2018
type User struct {
  Name []CustomerDetails `json:"name" bson:"name"`
}

Здесь User.Name - это срез, поэтому вы получаете ошибку.

func main() {
  var custName User
  custName.Name = append(custName.Name, CustomerDetails{
    Value: "ABC",
  })
  fmt.Println(custName)
}

https://play.golang.org/p/J56LjH7Lqdd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...