Sobes.tech
Junior — Middle

Чӣ гуна ифодаи мубодилаи паёмҳо байни фиристанда ва қабулкунандаи маълумот дар забони Go?

sobes.tech AI

Ҷавоб аз AI

В езика Go, обменът на съобщения между изпращача и получателя на данни се реализира чрез канали (channels). Каналите позволяват на горутините (goroutines) безопасно да обменят данни, синхронизирайки изпълнението си.

Каналът се създава с помощта на функцията make и може да бъде с буфер или без:

ch := make(chan int)        // канал без буфер
chBuf := make(chan int, 5)  // канал с буфер с размер 5

Изпращане към канала:

ch <- 42  // изпрати стойност 42 към канала ch

Получаване от канала:

value := <-ch  // получи стойността от канала ch

Пример за обмен на съобщения между две горутини:

package main

import (
    "fmt"
    "time"
)

func main() {
    ch := make(chan string)

    go func() {
        ch <- "Здравей от горутината"
    }()

    msg := <-ch
    fmt.Println(msg)
}

По този начин, каналите в Go осигуряват безопасна и удобна комуникация между паралелните изпълнителни потоци.