To check if a channel is open in Go, we can use the built-in function cap
. cap
returns the capacity of a channel, which is the maximum number of elements it can hold without blocking. If the channel is closed, cap
returns zero.
Here's an example:
main.go137 chars12 lines
In this example, we create a buffered channel ch
with a capacity of 5. We then print its capacity using cap
, which outputs 5
. We then close the channel using close
, and print its capacity again, which now outputs 0
since the channel is closed.
Note that checking if a channel is open is usually not necessary or recommended in Go, since sending to or receiving from a closed channel will result in a panic. It's typically better to use the select
statement with a final default
clause to handle cases where a channel is closed.
gistlibby LogSnag