Go 結構體中的匿名字段
在 Go 中,結構體可以包含匿名字段,即沒有明確名稱的字段。這些欄位允許您將另一個結構或類型嵌入到當前結構中,從而提供對嵌入類型的欄位的訪問,而無需明確列出它們。
匿名欄位的用途
匿名欄位有多種用途:
存取匿名欄位
您可以像造訪命名欄位一樣存取匿名欄位。可以使用父結構體的欄位名稱直接存取提升的欄位。可以使用嵌入類型的欄位名稱來存取其他匿名欄位。
範例
考慮以下程式碼:
package main import "fmt" type Widget struct { name string } type WrappedWidget struct { Widget // Promoted field Time time.Time Price int64 } func main() { widget := Widget{"my widget"} wrappedWidget := WrappedWidget{widget, time.Now(), 1234} fmt.Printf("Widget named %s, created at %s, has price %d\n", wrappedWidget.name, // Accessing the promoted field wrappedWidget.Time, // Accessing an anonymous field wrappedWidget.Price) // Accessing a normal field }
輸出:
Widget named my widget, created at 2009-11-10 23:00:00 +0000 UTC m=+0.000000001, has price 1234
在此範例中,PappedWid >
在此範例中,PappedWid > Widget 結構並提升其名稱欄位。因此,您可以直接在 WrappedWidget 實例上存取名稱欄位。以上是Go 結構中的匿名欄位如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!