23 lines
343 B
Go
23 lines
343 B
Go
|
|
package main
|
||
|
|
|
||
|
|
import "fmt"
|
||
|
|
|
||
|
|
func sum(s []int, c chan int) {
|
||
|
|
sum := 0
|
||
|
|
for _, v := range s {
|
||
|
|
sum += v
|
||
|
|
}
|
||
|
|
c <- sum // Send the sum into the channel
|
||
|
|
}
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
s := []int{7, 2, 8, -8, 4, 0}
|
||
|
|
|
||
|
|
c := make(chan int)
|
||
|
|
go sum(s[:len(s)/2], c)
|
||
|
|
go sum(s[len(s)/2:], c)
|
||
|
|
x, y := <-c, <-c // Receive from the channel
|
||
|
|
|
||
|
|
fmt.Println(x, y, x+y)
|
||
|
|
}
|