Dai Jie

Results 247 comments of Dai Jie

@ghosx 细心~ 队尾队首是个相对的概念,具体以实现为准吧。

@laizhenxing maxBytes 设置为0,代表不对内存大小设限,这里和 groupcache 是一致的。所以不为0时,才会判断是否超过了限制。 ```go for c.maxBytes != 0 && c.maxBytes < c.nbytes { c.RemoveOldest() } ```

@zouguangjie `Value` 是自定义的一个数据结构,定义在 [lru.go#76](https://github.com/geektutu/7days-golang/blob/master/gee-cache/day1-lru/geecache/lru/lru.go#L76) 中。你的代码里是不是少写了这几行? ```go // Value use Len to count how many bytes it takes type Value interface { Len() int } ```

@UnbearableFate 因为 Go 没有泛型的机制,所以只能用 `interface{}` 来代替任意的类型,官方的说法是最早在 1.17 支持,不过我对这个时间点比较悲观,可能得等到 2.0 版本了。

> get操作后,是不是要将key的指针移到最前面?? @lambda7xx ,Get 方法中,已经这么实现了。 ```go if ele, ok := c.cache[key]; ok { c.ll.MoveToFront(ele) } ```

@Arbusz @zjfsdnu 为了降低代码量,这一节实现的路由算法很粗糙。因为整个系列的核心还是想介绍一个框架的最基础的构成,所以都只能是浅尝辄止,不过7天就打不住了。

@liweiforeveryoung 非常感谢,指出了非常关键的问题。 第一个bug,存在覆盖的问题,gin 的做法才是对的,应该把问题暴露给用户。 第二个问题,http 请求是并发的,但每一个请求都会调用 `ServeHTTP` ,这个方法中,context 每次都创建新的,不会对同一个context进行写入。 ```go func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) { c := newContext(w, req) engine.router.handle(c) } ```

@limaoxiaoer @xlban163 感谢二位的建议,这里可能假定了大家是计算机专业,学习过二叉树、B+树等常用的数据结构了。以后的文章细节会多写一些。

@Howard0o0 通配符匹是文中的模糊匹配,精准匹配是指每个字符都一致,而不是用通配符。 > 写的太好了,十分感谢大佬的付出! @wushh @wangzukang 感谢支持,笔芯~