当我们创建结构体时,字段可以只有类型,而没有字段名。这样的字段称为匿名字段(Anonymous Field)。
type Person struct {
string
int
}
func main() {
//虽然匿名字段没有名称,但其实匿名字段的名称就默认为它的类型。
p := Person{"Naveen", 50}
fmt.Println(p)
//虽然匿名字段没有名称,但其实匿名字段的名称就默认为它的类型。比如在上面的 Person 结构体里,虽说字段是匿名的,但 Go 默认这些字段名是它们各自的类型。所以 Person 结构体有两个名为 string 和 int 的字段。
var p1 Person
p1.string = "sasa"
p1.int = 22
fmt.Println(p1)
}
{Naveen 50}
{sasa 22}
那么如果有多个匿名字段的类型是一致的,这样可以吗?
type Person struct {
string
int
string
}
func main() {
}
报错:
src\go程\16. 结构体\匿名字段.go:7:2: duplicate field string