Por defecto, los canales son sin buffer, lo que significa que solo aceptarán envíos
(chan <- ) si hay una recepción correspondiente (<- chan ) lista para recibir
el valor
enviado. Los canales con buffer aceptan un número limitado de valores sin un receptor
correspondiente para
esos valores.
|
|
|
package main
|
|
import "fmt"
|
|
func main() {
|
Aquí hacemos un canal de cadenas con un buffer de hasta 2 valores.
|
messages := make(chan string, 2)
|
Debido a que este canal está bufferizado, podemos enviar estos valores al canal sin una recepción
concurrente
correspondiente.
|
messages <- "buffered"
messages <- "channel"
|
Más tarde podemos recibir estos dos valores como de costumbre.
|
fmt.Println(<-messages)
fmt.Println(<-messages)
}
|