Menerima dan Menghantar Dalam Satu Penyata Kes Tunggal
Dalam Go, adalah mungkin untuk menggabungkan operasi terima dan hantar dalam penyata kes pilihan yang sama, seperti yang ditunjukkan oleh coretan kod ini:
for { select { ... case ch2 <- (<-ch1): ... } }
Kod ini bertujuan untuk memajukan hasil saluran ch1 ke saluran ch2. Walau bagaimanapun, ia menimbulkan persoalan tentang operasi yang mana, menerima daripada ch1 atau menghantar ke ch2, penyata pilih pilih pada.
Proses Pemilihan
Seperti yang dijelaskan dalam Perjalanan dokumentasi, apabila memasukkan penyata pilih:
Implikasi untuk Yang Diberikan Kod
Dalam contoh yang disediakan, perkara berikut berlaku:
case ch2 <- (<-ch1):
Oleh itu, penyata pilih memilih sama ada untuk menghantar nilai yang diterima daripada ch1 ke ch2 atau mengendalikan kes lain.
Kesan Sampingan
Adalah penting untuk ambil perhatian bahawa walaupun operasi terima daripada ch1 tidak dipilih akhirnya, nilai masih dimakan dan dibuang. Tingkah laku ini boleh menjadi penting dan harus dipertimbangkan apabila menggunakan corak ini.
Atas ialah kandungan terperinci Adakah `pilih` Pilih untuk Terima atau Hantar dalam `kes ch2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!