gobyexample/032-channel-directions/channel-directions.go
2012-09-23 18:31:33 -07:00

38 lines
596 B
Go

// ## Channel Directions
package main
import "fmt"
func pinger(pings chan<- string) {
for i := 0; i <= 10; i++ {
pings <- "ping"
}
}
func ponger(pings <-chan string, pongs chan<- string) {
for {
<-pings
pongs <- "pong"
}
}
func printer(pongs <-chan string) {
for {
msg := <-pongs
fmt.Println(msg)
}
}
func main() {
var pings chan string = make(chan string)
var pongs chan string = make(chan string)
go pinger(pings)
go ponger(pings, pongs)
go printer(pongs)
var input string
fmt.Scanln(&input)
}