Sobes.tech
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-ҳо таъмин мекунад.