既定ではチャネルはバッファリングされないため、送信された値を受信する準備ができた受信 (<- chan ) が存在する場合に限り、送信 (chan <- ) は許可されます. バッファリングされたチャネルはそれらの値の受信側がなくても、限られた数の値を受信します.
|
|
|

package main
|
|
import "fmt"
|
|
func main() {
|
ここでは、最大 2 つの値をバッファリングする文字列のチャネルをmake します.
|
messages := make(chan string, 2)
|
このチャネルはバッファリングされているため、対応する同時受信がなくても、これらの値をチャネルに送信できます.
|
messages <- "buffered"
messages <- "channel"
|
後で、これらの 2 つの値を普段どおり受信できます.
|
fmt.Println(<-messages)
fmt.Println(<-messages)
}
|