Go中的合成并使用struct创建模板数据结构

时间:2018-09-12 14:25:11

标签: go

我正在尝试创建一个从另一个仅用于存储值的结构继承的结构。

这是我所拥有的:

type Pet struct {
  Name string
}

type Dog struct {
  *Pet
  Breed string
  Color string
}

此代码可以正常工作:

var myPet Dog
func main() {
  myPet.Name = "Rover"
  myPet.Breed = "Labrador"
}

此代码无法正常工作:

var myPet = Dog{
  Name: "Rover", // can not inherit name 
  Breed: "Labrador"
}
func main() {
  ...
}

我知道是否将struct Dog中的Pet字段设置为Pet类型,那么它将起作用,例如,

type Dog struct {
  Pet Pet
  Breed string
  Color string
}

var myPet = Dog{
  Pet{
    Name: "Rover",
  },
  Breed: "Labrador",
  Color: "Yellow",
}

无论如何,Go中是否有直接继承(我知道,Go中没有继承...)Pet结构名称字段,并使用Dog {Name:“ Rover”,Breed:“ Labrador”}设置值?

0 个答案:

没有答案