为了账号安全,请及时绑定邮箱和手机立即绑定

go-staticcheck:应使用简单的通道发送/接收,而不是选择单个案例

go-staticcheck:应使用简单的通道发送/接收,而不是选择单个案例

Go
catspeake 2022-09-05 09:26:31
我使用的是Go 1.16.4。我正在尝试处理这样的代码:func (pool *myConnPool) GetPooledConnection() (*myConnection, error) {    go func() {        conn, err := pool.createConn()        if err != nil {            return        }        pool.connections <- conn    }()    select { // <<<< golint warning here    case conn := <-pool.connections:        return pool.packConn(conn), nil    }}我得到了以下Go linter警告:在代码中标记的点。任何人都可以解释如何解决这个问题吗?我对围棋频道还不太熟悉。should use a simple channel send/receive instead of select with a single case (S1000)
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

linter告诉你,你的使用是没有意义的,只有一个。要解决此问题,请替换以下内容:selectcase


select {

case conn := <-pool.connections:

    return pool.packConn(conn), nil

}

跟:


conn := <-pool.connections

return pool.packConn(conn), nil

甚至:


return pool.packConn(<-pool.connections), nil


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 1083 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信