Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Penyata `select` Go Mengendalikan Operasi Terima dan Hantar Serentak?
Berkomunikasi Saluran melalui Penyata Pilihan
Untuk memajukan hasil antara saluran, anda mungkin menghadapi kod seperti ini:
for { select { ... case ch2 <- <-ch1: ... } }
Reka bentuk ini menimbulkan persoalan tentang cara pilih beroperasi pada kedua-dua operasi terima dan hantar.
Terima atau Hantar, atau Kedua-duanya?
Bertentangan dengan memilih sama ada operasi secara individu, pilih penyata menilai keseluruhan operasi, termasuk operasi terima (<-ch1) dan hantar (ch2 <-), apabila memasukkan pilih. Ini bermakna:
case ch2 <- <-ch1:
akan menyekat serta-merta menerima daripada ch1, dan kemudian pilih akan menentukan sama ada penghantaran pada ch2 diteruskan atau kes lain dipilih.
Pada dasarnya, pilih memperlakukan kes di atas sebagai:
case ch2 <- <something>:
di mana
Kesan Sampingan
Reka bentuk ini membawa kesan sampingan: jika kes dengan penerima bersarang (<-ch1) tidak dipilih , nilai daripada ch1 masih digunakan dan dibuang.
Atas ialah kandungan terperinci Bagaimanakah Penyata `select` Go Mengendalikan Operasi Terima dan Hantar Serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!