Operation | Channel state | Result |
---|---|---|
Read | nil | Block |
Open and Not Empty | Value | |
Open and Empty | Block | |
Closed | <default value> , false |
|
Write Only | Compilation Error | |
Write | nil | Block |
Open and full | Block | |
Open and Not Full | Write Value | |
Closed | panic | |
Receive Only | Compilation Error | |
close | nil | panic |
Open and Not Empty | Closes Channel; reads succeed until channel is drained, then reads produce default value | |
Open and Empty | Closes Channel; reads produces default value | |
Closed | panic | |
Receive Only | Compilation Error |
Source: Concurrency in Go by Katherine Cox-Buday