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