2个协程交替打印字母和数字
答案1:
package main
import (
"fmt"
)
func main() {
limit := 26
numChan := make(chan int, 1)
charChan := make(chan int, 1)
mainChan := make(chan int, 1)
charChan <- 1
go func() {
for i := 0; i < limit; i++ {
<-charChan
fmt.Printf("%c\n", 'a'+i)
numChan <- 1
}
}()
go func() {
for i := 0; i < limit; i++ {
<-numChan
fmt.Println(i)
charChan <- 1
}
mainChan <- 1
}()
<-mainChan
close(charChan)
close(numChan)
close(mainChan)
}