Alireza Shamsi
Alireza Shamsi
خواندن ۱ دقیقه·۶ سال پیش

26.آموزش GO با مثال(هدایت کانال)

وقتی شما از کانالها به عنوان پارامترهای تابعی استفاده میکنید،میتونید مشخص کنید که کانال برای ارسال و دریافت مقادیر است. این خاصیت نوع-ایمنی برنامه را افزایش میدهد .

package main import "fmt"

تابع ping تنها یک کانال برای ارسال مقادیر را قبول میکند. اگر بخواهیم سعی کنیم که دریافت را روی این کانال داشته باشیم میتونه یک خطای زمان اجرا رو پدید بیاره.

func ping(pings chan<- string, msg string) { pings <- msg }

تابع pong کانال اول برای دریافت مقادیر(pings) و کانال دوم را برای ارسال مقادیر (pongs) قبول میکند.

func pong(pings <-chan string, pongs chan<- string) { msg := <-pings pongs <- msg } func main() { pings := make(chan string, 1) pongs := make(chan string, 1) ping(pings, "passed message") pong(pings, pongs) fmt.Println(<-pongs) }

اجرای این برنامه

$ go run channel-directions.go passed message

<<هماهنگ سازی کانال-------------------------------------- Select >>

golang
در جست و جوی خود
مستندات زبان گولنگ به پارسی(GO)
شاید از این پست‌ها خوشتان بیاید