理解Go 結構中的無名字段
Go 結構中的無名(或匿名)欄位有兩個用途:
1。提升欄位:
結構中的第一個匿名欄位成為「提升」欄位。這意味著您可以直接從父結構體存取其屬性,而無需指定欄位名稱。
2.嵌入複合類型:
匿名欄位可讓您將整個結構嵌入到另一個結構中,從而允許您利用嵌入類型的功能。
為了說明這些概念,請考慮以下內容程式碼片段:
package main import ( "fmt" ) type Base struct { Name string } type Embedded struct { Address string } type Person struct { Base Embedded } func main() { person := Person{ Base: Base{Name: "Alice"}, Embedded: Embedded{Address: "123 Main Street"}, } fmt.Printf("Name: %s, Address: %s\n", person.Name, person.Address) }
在此範例中:
存取 person 上的 Name 時,我們使用簡寫語法來存取Base的提升字段,即Name。類似地,要存取 Address,我們使用 person.Address 來存取嵌入式嵌入式結構。
這有效地允許我們建立一個新類型(Person),它繼承了 Base 和 Embedded 結構的屬性,提供了方便和組成複雜資料結構的乾淨方法。
以上是Go 結構中的無名字段如何提升字段和嵌入複合類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!