如何判断channel是否已经关闭?
前言
" 往一个已经关闭的channel写会怎样?“(会panic)
" 那怎么保证你写入的时候channel没有被关闭呢?换句话说就是怎么判断你的channel是否已经关闭?”
go为什么没有判断channel已经close的接口?
相信大家应该都遇到过 “send on closed channel” 的 panic 。这个 panic 是当你想往一个已经 close 的 channel 里面写值的时候触发。那么你当你第一次遇到这个问题是否想过 channel 是否能提供一个接口方法来判断是否已经 close 了?但是channel的源码中并没有针对是否close判断
思考方法一:通过写channel 实现
ch := make(chan int)
go func() {
defer func() {
if recover() != nil<