Junior — Middle
Hoe wordt de berichtuitwisseling tussen verzender en ontvanger van gegevens in de programmeertaal Go gerealiseerd?
sobes.tech AI
Antwoord van AI
In de programmeertaal Go wordt de berichtuitwisseling tussen verzender en ontvanger van gegevens gerealiseerd via kanalen (channels). Kanalen stellen goroutines in staat om veilig gegevens uit te wisselen en hun uitvoering te synchroniseren.
Een kanaal wordt gemaakt met de functie make en kan gebufferd of niet-gebufferd zijn:
ch := make(chan int) // niet-gebufferd kanaal
chBuf := make(chan int, 5) // gebufferd kanaal met buffer grootte 5
Verzenden naar het kanaal:
ch <- 42 // stuur waarde 42 naar kanaal ch
Ontvangen uit het kanaal:
value := <-ch // haal waarde uit kanaal ch
Voorbeeld van berichtuitwisseling tussen twee goroutines:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Hallo van de goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
Op deze manier zorgen kanalen in Go voor een veilige en handige communicatie tussen parallelle uitvoeringsstromen.