Junior — Middle
Kā tiek īstenota ziņojumu apmaiņa starp sūtītāju un saņēmēju datu valodā Go?
sobes.tech AI
Atbilde no AI
Go valodā ziņojumu apmaiņa starp sūtītāju un saņēmēju tiek īstenota ar kanāliem (channels). Kanāli ļauj goroutine droši apmainīties ar datiem, sinhronizējot to izpildi.
Kanāls tiek izveidots ar funkciju make un var būt ar buferi vai bez:
ch := make(chan int) // bez bufera kanāls
chBuf := make(chan int, 5) // ar buferi, izmērs 5
Sūtīšana uz kanāla:
ch <- 42 // sūtīt vērtību 42 uz kanāla
Saņemšana no kanāla:
value := <-ch // saņemt vērtību no kanāla
Piemērs ziņojumu apmaiņai starp divām goroutine:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Sveiki no goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
Tādējādi, kanāli Go valodā nodrošina drošu un ērtu komunikāciju starp paralēli izpildāmiem pavedieniem.