go中的结构体--匿名字段

当我们创建结构体时,字段可以只有类型,而没有字段名。这样的字段称为匿名字段(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

猜你喜欢

转载自blog.csdn.net/qq_20867981/article/details/83624352