Dai Jie

Results 247 comments of Dai Jie

@DasyDong fixed, thanks. [hpg-exit-goroutine.md](https://github.com/geektutu/high-performance-go/blob/master/charpter-3/hpg-exit-goroutine.md)

@didijiang 感谢关注~ 以后还有分享更多的~

@yfgeek 感谢认可~

@yuzixun 非常感谢指出问题,已经修正,博客一段时间后会自动更新。

> tutu 大神你好,请教个问题,下边的语法中 `{}` 代码段中有什么特殊作用么? @chopin11 @ionling 的回答是正确的,在这里 `{}` 包裹成独立代码块,与其他代码区分开发,便于理解。另外,Go 语言的变量作用域是代码块级别的,也就是,多个代码块内部可以定义相同的变量,而互相不影响。

正文中写了,idx 可能等于 len(m.keys),key 比 m.keys 都大的时候。

@shiluoye 一般来说,哈希函数考虑两个点:一个是碰撞率,一个是性能。比如 CRC、MD5、SHA1。 对于缓存来说,hash 之后再根据节点数量取模,因此 hash 函数的碰撞率影响并不大,而是模的大小,也就是节点的数量比较关键,这也是引入虚拟节点的原因,但是缓存对性能比较敏感。 而对于需要完整性校验的场合,碰撞率比较关键,而性能就比较次要了。一般使用 256位的 SHA1 算法,MD5 已经不再推荐了。CRC 即循环冗余校验,编码简单,性能高,但安全性就很差了。作为缓存的 hash 算法还是很合适的。

@FinaLone 这里是没关系的,即使转换成负数,并不影响后面的逻辑。使用 int 的确是方便使用各种函数。包括 `sort.Ints` `sort.Search` 等。

@CaocaoWym 同样是建议 Python~ Go 是静态语言,灵活性比 Python 差挺多。Python 的包更丰富,更适合用来写小程序,做一些自动化的事情。