初级会员
  • 第 47928 位会员
  • davidyanxw
  • 2020-02-06 15:40:22
  • Offline
  • 20 14

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 连接池是并发安全的,连接不是并发安全的。 所以,还是需要处理并发问题
  • 评论了博文 Golang中长连接的使用
    #1 @wuchenghui 长连接初始化client时候带了Transport参数,这个应该是长连接的关键 `client2 := http.Client{Transport: HTTPTransport} // 初始化一个带有transport的http的client `
  • ![image.png](https://static.studygolang.com/210805/5ac48633eb7d654d7d8c96d548596fed.png) ![image.png](https://static.studygolang.com/210805/f29efffe126b447b985f4b3ea8e7a47d.png) ![image.png](https://static.studygolang.com/210805/c83c7fef918419d9a3df1ffcf39e266b.png) ![image.png](https://static.studygolang.com/210805/468e9ec5c5140629d66ae4889df549fb.png) 可以的。
  • Error communicating with remote server.
  • 楼主可能描述的有点小问题,但是结论是对的,是个坑。 复现代码: ```go type EntityStorage interface { Close() } type RedisEntityStorage struct { } func (*RedisEntityStorage) Close() { } func OpenRedis() *RedisEntityStorage { return nil } func main() { var storageEngine EntityStorage fmt.Println(reflect.TypeOf(storageEngine), reflect.ValueOf(storageEngine)) fmt.Println(storageEngine == nil) // true storageEngine = OpenRedis() fmt.Println(reflect.TypeOf(storageEngine), reflect.ValueOf(storageEngine)) fmt.Println(storageEngine == nil) // false } ``` 具体问题楼主已经说了,两个解决方法都可以。 另外,从习惯上,有两个点可以帮助避免这些坑: 1. 多返回值error 2. storageEngine变量类型是EntityStorage,那么OpenRedis()返回值也应该是EntityStorage,保持一致。