func f(n int) {for i := 0; i < 10; i++ {fmt.Println(n, ":", i)}}func main() {go f(0)var input stringfmt.Scanln(&input)}
func main() {messages := make(chan string)go func() { messages <- "ping" }()msg := <-messagesfmt.Println(msg)}
func pinger(c chan<- string)
Канал c будет только отправлять сообщение.
func pinger(c <-chan string)
func main() {messages := make(chan string, 2)messages <- "buffered"messages <- "channel"fmt.Println(<-messages)fmt.Println(<-messages)}
func main() {c1 := make(chan string)c2 := make(chan string)go func() { time.Sleep(time.Second * 1) c1 <- "one" }()go func() { time.Sleep(time.Second * 2) c2 <- "two" }()for i := 0; i < 2; i++ {select {case msg1 := <-c1:fmt.Println("received", msg1)case msg2 := <-c2:fmt.Println("received", msg2)}}}
Презентация и исходный код