Di GO, struct adalah jenis data komposit yang kumpulan bersama sifar atau lebih banyak nilai dengan jenis yang berbeza ke dalam satu unit. Structs digunakan untuk membuat jenis data tersuai yang boleh memegang pelbagai bidang, yang membolehkan perwakilan data yang lebih teratur dan berstruktur.
Untuk menentukan struct di Go, anda menggunakan kata kunci struct
diikuti dengan satu set pendakap keriting yang mengandungi medan struktur. Setiap medan mempunyai nama dan jenis. Berikut adalah contoh bagaimana untuk menentukan struktur:
<code class="go">type Person struct { Name string Age int Email string }</code>
Sebaik sahaja anda telah menentukan struktur, anda boleh membuat contohnya dan menggunakannya dalam program anda. Berikut adalah cara anda boleh membuat dan menggunakan struct Person
:
<code class="go">func main() { // Creating a new Person instance person := Person{ Name: "John Doe", Age: 30, Email: "john.doe@example.com", } // Using the fields of the struct fmt.Printf("Name: %s, Age: %d, Email: %s\n", person.Name, person.Age, person.Email) }</code>
Dalam contoh ini, kita membuat contoh Person
baru dan memulakan bidangnya. Kami kemudian mengakses bidang ini dan menggunakannya untuk mencetak maklumat orang itu.
Menggunakan Structs In Go memberikan beberapa faedah:
Untuk memulakan struktur di GO, anda boleh menggunakan beberapa kaedah:
Inisialisasi medan demi medan :
Anda boleh memulakan struktur dengan menentukan nilai untuk setiap bidang secara eksplisit.
<code class="go">person := Person{ Name: "John Doe", Age: 30, Email: "john.doe@example.com", }</code>
Inisialisasi Posisi :
Anda juga boleh memulakan struktur dengan memberikan nilai mengikut urutan yang ditakrifkan dalam struct.
<code class="go">person := Person{"John Doe", 30, "john.doe@example.com"}</code>
Inisialisasi nilai sifar :
Jika anda tidak menentukan nilai untuk semua bidang, GO akan secara automatik menetapkannya kepada nilai sifar mereka.
<code class="go">person := Person{Name: "John Doe"} // person.Age will be 0, and person.Email will be an empty string</code>
Untuk mengakses medan dalam struktur, anda menggunakan notasi DOT ( structName.fieldName
). Inilah contoh:
<code class="go">fmt.Println(person.Name) // Output: John Doe fmt.Println(person.Age) // Output: 30 fmt.Println(person.Email) // Output: john.doe@example.com</code>
Anda juga boleh mengubah suai medan struktur menggunakan notasi yang sama:
<code class="go">person.Age = 31 fmt.Println(person.Age) // Output: 31</code>
Di GO, medan tanpa nama (juga dikenali sebagai medan tertanam) adalah medan dalam struktur yang ditakrifkan tanpa nama, hanya menentukan jenisnya. Jenis itu sendiri berfungsi sebagai nama medan. Konsep ini membolehkan untuk membenamkan satu struktur di dalam yang lain, yang dapat memudahkan akses ke medan struktur tertanam.
Berikut adalah cara anda boleh menentukan struktur dengan bidang tanpa nama:
<code class="go">type Address struct { Street string City string Country string } type Person struct { Name string Age int Address // Anonymous field }</code>
Apabila anda membuat contoh struktur Person
, anda boleh mengakses medan alamat Address
secara langsung melalui contoh Person
:
<code class="go">person := Person{ Name: "John Doe", Age: 30, Address: Address{ Street: "123 Main St", City: "Anytown", Country: "USA", }, } fmt.Println(person.Street) // Output: 123 Main St fmt.Println(person.City) // Output: Anytown fmt.Println(person.Country) // Output: USA</code>
Gunakan kes untuk bidang tanpa nama:
Ringkasnya, bidang tanpa nama dalam GO Structs menyediakan cara yang kuat untuk mewujudkan lebih banyak struktur kod ringkas dan boleh diguna semula, meningkatkan fleksibiliti dan kebolehbacaan program anda.
Atas ialah kandungan terperinci Apakah structs di GO? Bagaimana anda menentukan dan menggunakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!