2024 Clojure 状态调查中分享您的想法!

欢迎!请查看关于页面,了解更多相关信息。

+1
core.cache

https://cljdoc.org/d/org.clojure/core.cache/1.0.225/doc/using-core-cache 上的 doc 示例没有提到必须选择 between core.cachecore.cache.wrapped 。更具体地说,在创建缓存时,示例导入了 core.cache 命名空间。然而,在接下来的查找或缺失操作中,假设导入了 core.cache.wrapped。当尝试使用由 core.cache 的工厂创建的缓存来使用 wrapped/lookup-or-miss 时,会遇到相当模糊的异常

class clojure.core.cache.LRUCache cannot be cast to class clojure.lang.IAtom

我认为在文档中提供更详细的示例可以减轻这个问题。

1 个答案

+1

感谢您提供反馈!自从我接管 core.cache 的维护工作以来,我必须承认我没有花很多时间在文档上。由于 2023 年 Clojurists Together 的资金支持,我将在文档上花些时间,彻底重建这个库的文档。

我们在工作中大量使用 clojure.core.cache.wrapped,因为它比尝试使用 clojure.core.cache 并自己管理原子等事情方便得多。我需要提炼这一经验,并确保文档反映了这一点。

by
Sean,

乐意阅读你所写的内容,并在可能的情况下提供帮助。
by
我已经在 README (以及 repo 中的一些 /docs 页面)上添加了一些注释,以尝试阐明两种使用方式:[https://github.com/clojure/core.cache/blob/master/README.md](https://github.com/clojure/core.cache/blob/master/README.md)

特别是,我将 clojure.core.cache.wrapped 的 :as 别名从 c 改为 w,使得第二个示例块使用包装 API 的使用更清晰。
...