|
کانالها بهطور پیشفرض بدون بافر هستند؛ یعنی فقط
زمانی ارسال (chan <-) را میپذیرند که یک دریافت
متناظر (<- chan) آمادهٔ گرفتن مقدار فرستادهشده
باشد. کانالهای بافردار تعداد محدودی مقدار را بدون
وجود گیرندهٔ متناظر میپذیرند.
|
|
|
|

package main
|
|
|
import "fmt"
|
|
|
func main() {
|
|
اینجا با make کانالی از رشتهها میسازیم که تا
۲ مقدار را بافر میکند.
|
messages := make(chan string, 2)
|
|
چون این کانال بافردار است، میتوانیم این مقادیر را
بدون یک دریافتِ همزمانِ متناظر به کانال بفرستیم.
|
messages <- "buffered"
messages <- "channel"
|
|
بعداً میتوانیم این دو مقدار را مثل همیشه دریافت
کنیم.
|
fmt.Println(<-messages)
fmt.Println(<-messages)
}
|