Rumah >pembangunan bahagian belakang >Golang >Apakah Struktur Tanpa Nama dan Struktur Kosong dalam Go, dan Bagaimana Ia Digunakan untuk Isyarat?
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!