利用channel交替打印两个数组

【利用channel交替打印两个数组】前两天出去面试,面试官让手写一下两个数组交替打印。吭哧吭哧半天也没写出来..特在此做一个笔记

package mainimport "fmt"func main() { ch := make(chan int) str1 := [5]int{1, 3, 5, 7, 9} str2 := [5]int{0, 2, 4, 6, 8} go func() { for i, v := range str1 { <-ch fmt.Print(v) ch <- i } }() for i, v := range str2 { ch <- i fmt.Print(v) <-ch }}

打印结果:
0123456789

或者
1032547698

总结:利用协程通道来相互阻塞来达到交替打印的结果。

    推荐阅读