Junior — Middle
Тавзеҳ диҳед принсипи кории канали интиқоли маълумот дар барномаи шумо.
sobes.tech AI
Ҷавоб аз AI
Дар забони Go, канал (channel) — навъи аст, ки имкон медиҳад, ки маълумотҳо байни goroutine-ҳо бо бехатарӣ интиқол ёбанд, ҳамзамон синхронӣ ва мубодилаи паёмҳоро таъмин мекунад.
Каналро метавон ҳамчун навбат ё қубур тасаввур кард, ки дар он як goroutine маълумотҳоро мегузорад ва дигарон онҳоро мегиранд. Ин кӯмак мекунад, ки мушкилоти дастрасии ҳамзамон ба маълумоти умумӣ пешгирӣ шаванд.
Маслиҳати истифодаи канал:
ch := make(chan int) // сохтани канал барои интиқоли int
// фиристодани маълумот ба канал
go func() {
ch <- 42
}()
// гирифтани маълумот аз канал
value := <-ch
fmt.Println(value) // 42-ро мебарорад
Бинобар ин, канал интиқоли маълумоти бехатар ва ҳамзамонсозиро байни goroutine-ҳо таъмин мекунад.