Channels
ch <- v // send v to channel ch
v := <-ch // receive from channel ch and store the value in vch := make(chan int)Example
package main
import "fmt"
func sum(s []int, ch chan int) {
sum := 0
for _,v := range s {
sum += v
}
ch <- sum
}
func main() {
s := []int{9, 8, 7, 5, 4, 0, -9, -8}
ch := make(chan int)
go sum(s[:len(s)/2], ch) // 4+0-9-8=-13
go sum(s[len(s)/2:], ch) // 9+8+7+5=29
x, y := <-ch, <-ch
fmt.Println(x, y, x+y)
}Buffered Channels
Example
Last updated