Medan Tanpa Nama dalam Go Structs
Dalam Go, struktur boleh mengandungi medan tanpa nama, iaitu medan tanpa nama yang jelas. Medan ini membenarkan anda membenamkan struct atau taip lain ke dalam struct semasa anda, memberikan akses kepada medan jenis terbenam tanpa menyenaraikannya secara eksplisit.
Tujuan Medan Tanpa Nama
Medan tanpa nama mempunyai beberapa tujuan:
Mengakses Medan Tanpa Nama
Anda boleh mengakses medan tanpa nama dengan cara yang sama anda akan mengakses medan bernama. Medan yang dipromosikan boleh diakses terus menggunakan nama medan struct induk. Medan tanpa nama lain boleh diakses menggunakan nama medan jenis terbenam.
Contoh
Pertimbangkan kod berikut:
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 }
Output:
Widget named my widget, created at 2009-11-10 23:00:00 +0000 UTC m=+0.000000001, has price 1234
Dalam contoh ini, WrappedWidget membenamkan struct Widget dan mempromosikan medan namanya. Akibatnya, anda boleh mengakses medan nama terus pada contoh WrappedWidget.
Atas ialah kandungan terperinci Bagaimanakah Medan Tanpa Nama Berfungsi dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!