gpt4 book ai didi

caching - clojure.core.cache 只是使用他们自己的例子不起作用

转载 作者:行者123 更新时间:2023-12-04 05:40:54 26 4
gpt4 key购买 nike

我刚刚在我的项目中添加了 clojure.core.cache 0.6.1,做了一个 lein deps,按照这里非常简短和清晰的例子:https://github.com/clojure/core.cache它只是完全不起作用。

例子:

$lein repl
REPL started; server listening on localhost port 20513
user=> (require '[clojure.core.cache :as cache])
nil
user=> (def fifoc (cache/fifo-cache-factory {}))
#'user/fifoc
user=> (cache/has? fifoc :foo)
false
user=> (cache/miss fifoc :foo "bar")
{:foo "bar"}
user=> (cache/has? fifoc :foo)
false

这里出了什么问题?我完全没有捕获重点吗?我已经用其他缓存后端尝试过,结果都一样。尝试使用不同的键、不同的值、不同的命名空间、不同的别名 - nada。运行测试给了我这个:
$ lein test clojure.core.cache.tests

Testing clojure.core.cache.tests

Ran 13 tests containing 273 assertions.
0 failures, 0 errors.

这让这一切变得更加神秘。我查看了测试,虽然它们 :import 缓存后端并以 java 方式实例化它们(miss (BasicCache.{}) ...),我也尝试过,但对我来说也以完全相同的方式失败。

在我实现一个有效的方法之前有什么帮助吗?

最佳答案

cache/miss返回一个您需要用于进一步操作的新缓存对象。

前任:

user=> (cache/has? (cache/miss fifoc :foo "bar") :foo)
true

你的例子变成:
user=> (def fifoc (atom (cache/fifo-cache-factory {})))
#'user/fifoc
user=> (swap! fifoc #(cache/miss % :foo "bar"))
{:foo "bar"}
user=> (cache/has? @fifoc :foo)
true

关于caching - clojure.core.cache 只是使用他们自己的例子不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com