package main import "fmt" func read_from_c(c chan int, b chan int) { for item := range c { fmt.Printf("%d", item) number_multiplied := item * item b <- number_multiplied } close(b) } func read_from_b(b chan int) { for item := range b { fmt.Printf("%d", item) } } func main() { fmt.Println("main() started") c := make(chan int) b := make(chan int) fmt.Println("Operation started") go func() { fmt.Println("Running writer") for i := 1; i < 10; i++ { fmt.Printf("Adding %v to channel c", i) c <- i } close(c) }() go read_from_c(c, b) for item := range b { fmt.Printf("%d", item) } }