2个协程交替打印字母和数字

答案1:

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. limit := 26
  7. numChan := make(chan int, 1)
  8. charChan := make(chan int, 1)
  9. mainChan := make(chan int, 1)
  10. charChan <- 1
  11. go func() {
  12. for i := 0; i < limit; i++ {
  13. <-charChan
  14. fmt.Printf("%c\n", 'a'+i)
  15. numChan <- 1
  16. }
  17. }()
  18. go func() {
  19. for i := 0; i < limit; i++ {
  20. <-numChan
  21. fmt.Println(i)
  22. charChan <- 1
  23. }
  24. mainChan <- 1
  25. }()
  26. <-mainChan
  27. close(charChan)
  28. close(numChan)
  29. close(mainChan)
  30. }