Rumah > Artikel > pembangunan bahagian belakang > Apakah Perbezaan dalam Gelagat Penimbalan antara `make(chan bool)` dan `make(chan bool, 1)` dalam Go Channels?
Gelagat Penimbalan dalam Saluran Go: make(chan bool) lwn. make(chan bool, 1)
Saluran tidak buffer, dibuat menggunakan make (chan bool), berbeza daripada saluran buffer yang ditakrifkan dengan make(chan bool, 1) dalam keupayaannya untuk menyimpan nilai.
Saluran Tidak Dibuffer: make(chan bool)
Contoh:
<code class="go">chanFoo := make(chan bool) // Writes will block because no receiver is waiting chanFoo <- true // Corresponding read will now succeed even though no value was sent <-chanFoo</code>
Saluran Penampan: make(chan bool, 1)
Contoh:
<code class="go">chanFoo := make(chan bool, 1) // Write will succeed immediately chanFoo <- true // Subsequent read will also succeed <-chanFoo</code>
Perbezaan dalam Gelagat
Kepraktikalan Saluran Tidak Dibuffer
Semasa tidak dibuffer saluran mungkin kelihatan kurang intuitif atau kurang berguna, ia mempunyai aplikasi khusus:
Atas ialah kandungan terperinci Apakah Perbezaan dalam Gelagat Penimbalan antara `make(chan bool)` dan `make(chan bool, 1)` dalam Go Channels?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!