1. 程式人生 > >go中的結構體--匿名欄位

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