|
По умолчанию каналы небуферизованные, то есть они
принимают отправку (chan <-) только при наличии
соответствующего получателя (<- chan), готового
принять отправленное значение. Буферизованные каналы
принимают ограниченное количество значений без
соответствующего получателя для этих значений.
|
|
|
|

package main
|
|
|
import "fmt"
|
|
|
func main() {
|
|
Здесь мы создаём (make) канал строк с буфером
до 2 значений.
|
messages := make(chan string, 2)
|
|
Поскольку этот канал буферизован, мы можем отправить
эти значения в канал без соответствующего
конкурентного получения.
|
messages <- "buffered"
messages <- "channel"
|
|
Позже мы можем получить эти два значения как обычно.
|
fmt.Println(<-messages)
fmt.Println(<-messages)
}
|