初始化组合结构

时间:2021-06-23 15:17:12

标签: go

假设我有以下类型定义:

type Animal struct {
    Name string
}

type Cat struct {
    Animal
}

此初始化将起作用:

a := Animal{Name: "Tom"}

但这不会

c := Cat{Name: "Tom"}
  1. 这背后的原理是什么?
  2. 有没有办法使用类似的语法来初始化它?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用:

c := Cat{Animal:Animal{Name:"Tom"}}

嵌入式结构 Animal 可以从外部结构使用其类型名称访问。但是你可以这样做:

var c Cat
c.Name="Tom"

以及

var c Cat
c.Animal.Name="Tom"
相关问题