index
By default channels are _unbuffered_, meaning that they will only accept sends (`chan <-`) if there is a corresponding receive (`<- chan`) ready to receive the sent value. _Buffered channels_ accept a limited number of values without a corresponding receiver for those values.
package main
import "fmt"
func main() {
Here we `make` a channel of strings buffering up to 2 values.
	messages := make(chan string, 2)
Because this channel is buffered, we can send these values into the channel without a corresponding concurrent receive.
	messages <- "buffered"
	messages <- "channel"
Later we can receive these two values as usual.
	fmt.Println(<-messages)
buffered
	fmt.Println(<-messages)
channel
}
index