说明
之前这篇文章中的lru cache实现有很多考虑不周之处,加之golang1.18版本支持了泛型,趁这次机会对之前问题进行修正,顺便学习一下泛型的用法
和之前版本相比有如下改动:
- 存储顺序进行了修改,靠近头部的键值对是最近使用的,靠近尾部的键值对是最久未使用的
- 修复一些场景下空指针的问题
- 支持泛型
代码实现
1 | type Node[K comparable, V any] struct { |
之前这篇文章中的lru cache实现有很多考虑不周之处,加之golang1.18版本支持了泛型,趁这次机会对之前问题进行修正,顺便学习一下泛型的用法
和之前版本相比有如下改动:
1 | type Node[K comparable, V any] struct { |