golang面试

来源:互联网 发布:唯美现代诗 知乎 编辑:程序博客网 时间:2024/06/01 10:52

交替打印数字和字母


问题描述


使用两个 goroutine 交替打印序列,一个 goroutinue 打印数字, 另外一个goroutine打印字母, 最终效果如下 12AB34CD56EF78GH910IJ 。


package mainimport ("fmt""sync")func PrintNums(printChar chan int, wg *sync.WaitGroup) {defer wg.Done()for i := 0; i < 5; i++ {for j := 0; j < 2; j++ {fmt.Printf("%d", 2*i+j+1)}printChar <- 1<- printChar}}func PrintChars(printChar chan int, wg *sync.WaitGroup) {        defer wg.Done()        for i := 0; i < 5; i++ {<- printCharfor j := 0; j < 2; j++ {fmt.Printf("%c", 'A'+(2*i+j))}printChar <- 1        }}func main() {flag := make(chan int)var wg sync.WaitGroupwg.Add(2)go PrintNums(flag, &wg)go PrintChars(flag, &wg)wg.Wait()}


原创粉丝点击