channel_idiom2.go 292 B

1234567891011121314151617181920212223242526272829
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. func main() {
  7. suck(pump())
  8. time.Sleep(1e9)
  9. }
  10. func pump() chan int {
  11. ch := make(chan int)
  12. go func() {
  13. for i := 0; ; i++ {
  14. ch <- i
  15. }
  16. }()
  17. return ch
  18. }
  19. func suck(ch chan int) {
  20. go func() {
  21. for v := range ch {
  22. fmt.Println(v)
  23. }
  24. }()
  25. }