What are directional channels?
Go's channels provide a primitive for typed, synchronous message passing. Combined with goroutines, they form the backbone of Go's CSP-inspired concurrency model.
What is a buffered channel?
Buffered channels allows to accept a limited number of values without a corresponding receiver for those values. It is possible to create a channel with a buffer. Buffered channel are blocked only when the buffer is full. Similarly receiving from a buffered channel are blocked only when the buffer will be empty.
How do I close a channel in Golang?
We can close a channel in Golang with the help of the close() function. Once a channel is closed, we can't send data to it, though we can still read data from it. A closed channel denotes a case where we want to show that the work has been done on this channel, and there's no need for it to be open.