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
Lepaskan: 2024-12-23 22:14:15
asal
784 orang telah melayarinya

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{})
Salin selepas log masuk

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{}{}
Salin selepas log masuk

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 }
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan