4

我正在寻找一个表现得像向量的缓存。我一直在使用core.cache但那些是地图。我只需要一个简单的 fifo 驱逐方法。我意识到我可以使用该CacheProtocol协议简单地创建自己的,但我想知道这样的东西是否已经存在,或者是否有原因这是一个坏主意。

4

1 回答 1

2

如果您只需要一个类似于向量的接口到缓存,那么值的索引缓存很可能会满足您的需求。我对您的具体问题有所猜测,尽管使用数字作为缓存的键似乎可能会填充许多用例,因为向量在概念上与数字到值的映射非常相似:

user> (def C (cache/fifo-cache-factory {0 1 1 0}))
user> (get C 0)
1

如果这还不够,那么您可以像这样以向量的形式查看缓存的当前内容:

user> (vec (map #(get C % nil) (range 11)))
[1 0 nil nil nil nil nil nil nil nil nil]

在大多数情况下,使用数字作为索引可能会为许多人完成这项工作

于 2012-09-24T22:10:39.847 回答