Channels — communication mechanism between goroutines.
Key points:
1// Unbuffered channel2ch := make(chan int)34// Send5ch <- 4267// Receive8value := <-ch910// Buffered channel11ch := make(chan int, 10)12ch <- 1 // Doesn't block until full13ch <- 2
Directional channels:
1// Send-only2func send(ch chan<- int) {3 ch <- 424}56// Receive-only7func receive(ch <-chan int) {8 value := <-ch9}
Close channel:
1close(ch)2value, ok := <-ch // ok = false when closed