如何使用其他结构变量访问其他结构变量?

时间:2018-11-16 09:55:53

标签: go

我有两个结构,一个包含一个字段,另一个包含三个字段:-

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没有字段或方法Value)

Playground link

我将如何解决此错误?谁能帮我吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您应像这样将CustomerDetails附加到User.Namehttps://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是一个分片,因此您不能给它一个值。