Junior — Middle
Cum se implementează crearea și transmiterea datelor printr-un canal în sistemul dumneavoastră?
sobes.tech AI
Răspuns de la AI
În Go, pentru a crea și transmite date printr-un canal, se folosește tipul încorporat chan. Canalele permit schimbul sigur de date între goroutines.
Exemplu de creare și utilizare a unui canal:
package main
import (
"fmt"
)
func main() {
// Creăm un canal pentru transmiterea numerelor întregi
ch := make(chan int)
// Pornim o goroutine care trimite date în canal
go func() {
ch <- 42 // trimitem numărul 42
close(ch) // închidem canalul după trimitere
}()
// Primim date din canal
for val := range ch {
fmt.Println("Valoare primită:", val)
}
}
Aici:
make(chan int)creează un canal pentru transmitereaint.- Operatorul
<-este folosit pentru a trimite (ch <- 42) și a primi (val := <-ch) date. - Închiderea canalului (
close(ch)) semnalează că nu vor mai fi date. - Bucla
for rangecitește din canal până când acesta este închis.
Astfel, canalele asigură sincronizarea și transmiterea datelor între fire de execuție paralele.