Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah `pilih` Pilih untuk Terima atau Hantar dalam `kes ch2

Adakah `pilih` Pilih untuk Terima atau Hantar dalam `kes ch2

Barbara Streisand
Barbara Streisandasal
2024-11-15 07:58:02738semak imbas

Does `select` Choose to Receive or Send in `case ch2

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:

  • Ekspresi saluran dalam operasi terima dan penyata hantar adalah dinilai, menghasilkan satu set saluran untuk menerima daripada atau menghantar kepada, bersama-sama dengan nilai yang sepadan untuk penghantaran.
  • Sebarang kesan sampingan berlaku serta-merta semasa penilaian ini.
  • Ungkapan di sebelah kiri operasi terima dengan pengisytiharan pembolehubah pendek atau tugasan tidak dinilai.

Implikasi untuk Yang Diberikan Kod

Dalam contoh yang disediakan, perkara berikut berlaku:

case ch2 <- (<-ch1):
  • Ungkapan <-ch1 dinilai, menyekat serta-merta pada terima daripada ch1.
  • Nilai yang terhasil disimpan dalam pembolehubah sementara di sebelah kiri tugasan.
  • Pernyataan pilih kemudian mengawal sama ada operasi hantar pada ch2 berlaku.

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!

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