Rumah >pembangunan bahagian belakang >Golang >Apakah Struktur Tanpa Nama dan Struktur Kosong dalam Go, dan Bagaimana Ia Digunakan untuk Isyarat?

Apakah Struktur Tanpa Nama dan Struktur Kosong dalam Go, dan Bagaimana Ia Digunakan untuk Isyarat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-23 22:14:15787semak imbas

What are Anonymous Structs and Empty Structs in Go, and How Are They Used for Signaling?

Struktur Tanpa Nama dan Struktur Kosong

Dalam Go, struct tanpa nama ialah struct yang tidak mempunyai nama. Ia biasanya digunakan untuk mencipta struktur data sementara atau jangka pendek. Struct kosong tidak mempunyai medan dan menduduki sifar bait memori.

[Soalan Pertama]

Kod berikut menggunakan struct tanpa nama untuk memberi isyarat bahawa seorang pahlawan telah tamat berperang :

done := make(chan struct{})

Jenis struct{} mewakili struct kosong. Ia digunakan di sini kerana kita tidak perlu menyimpan sebarang data dalam struct. Kami hanya mahu menggunakannya untuk memberi isyarat bahawa seorang pahlawan telah selesai bertarung.

Barisan berikut menghantar struct kosong ke saluran yang telah selesai:

done <- struct{}{}

Kurungan tambahan diperlukan kerana < ; dan > operator mempunyai keutamaan yang lebih rendah daripada operator <-. Tanpa kurungan, kod akan ditafsirkan sebagai selesai <- (struct{}) {}, yang akan menghantar penuding kepada struct kosong dan bukannya struct kosong itu sendiri.

[Soalan Kedua ]

Barisan berikut menunggu semua pahlawan untuk menamatkan pertempuran:

for _ = range langs { <-done }

Ini baris menggunakan ungkapan julat untuk menerima daripada saluran yang telah selesai. Aksara _ digunakan sebagai pembolehubah pemegang tempat untuk menunjukkan bahawa kami tidak mengambil berat tentang nilai yang diterima. Ini kerana struct kosong yang dihantar oleh pahlawan tidak mengandungi sebarang data.

Ekspresi julat adalah perlu kerana ia membolehkan program menunggu semua pahlawan selesai bertarung sebelum meneruskan. Tanpa itu, program ini hanya akan menunggu pahlawan pertama selesai bertarung sebelum meneruskan.

Atas ialah kandungan terperinci Apakah Struktur Tanpa Nama dan Struktur Kosong dalam Go, dan Bagaimana Ia Digunakan untuk Isyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn