用Channel和两个协程实现数组相加

题目来源:好未来

答案1:(peace)

代码如下:

  1. package main
  2. import "fmt"
  3. //用channel和两个goroutine实现数组相加
  4. func add(a, b []int) []int {
  5. ch := make(chan int)
  6. c := make([]int,len(a))
  7. go func() {
  8. for _,v := range a{
  9. ch <- v
  10. }
  11. }()
  12. go func() {
  13. for i,t := range b{
  14. temp := <- ch
  15. c[i] = temp+t
  16. }
  17. }()
  18. return c
  19. }
  20. func main() {
  21. a := []int{2,4,6,8}
  22. b := []int{1,3,5,7}
  23. ans := add(a,b)
  24. fmt.Println(ans)
  25. }