请教个问题 我有个*netTCPConn, 我在一个routinge做了defer c.Close(),另一个也做了defer c.Close()可不可以? 如果不可以有没有好的办法?
我看 TCPConn有个ok()会判断c是有有效,是否这样就可以多次close了呢?
例如:
```go
func aaa(c *net.TCPConn) {
defer c.Close()
go bbb(c)
}
func bbb(c *net.TCPConn) {
defer c.Close()
}
```
更多评论
多次 Close 无非返回 error,而一般 Close 不关心返回值,所以,多次 Close 并不会有什么问题。你也可以实际试试,不panic 就行
#1
Close 实现中不是进行了判断吗?无非 Close 会返回错误,并不会 panic;另外,你为啥要 Close 两次,defer 能保证一定会执行的
#3