前两天出去面试,面试官让手写一下两个数组交替打印。吭哧吭哧半天也没写出来..特在此做一个笔记
package main
import "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
总结:利用协程通道来相互阻塞来达到交替打印的结果。