2012-08-14 22 views
8

Tôi vừa thêm clojure.core.cache 0.6.1 vào dự án của tôi, đã thực hiện một lein deps, theo ví dụ rất ngắn và rõ ràng ở đây: https://github.com/clojure/core.cache và nó chỉ bằng phẳng không hoạt động.clojure.core.cache chỉ không hoạt động bằng ví dụ của riêng mình

Ví dụ:

$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 

gì đang xảy ra sai ở đây? Tôi hoàn toàn mất tích điểm? Tôi đã thử nó với các backend bộ nhớ cache khác tất cả với cùng một kết quả. Đã thử nó với các khóa khác nhau, các giá trị khác nhau, không gian tên khác nhau, bí danh khác nhau - nada. Chạy thử nghiệm cho tôi điều này:

$ lein test clojure.core.cache.tests 

Testing clojure.core.cache.tests 

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

Điều này làm cho điều này trở nên bí ẩn hơn. Tôi đã xem xét các bài kiểm tra, và trong khi chúng: nhập vào các backend cache và khởi tạo chúng theo cách java (miss (BasicCache. {}) ...), mà tôi cũng đã thử, điều đó cũng không thành công đối với tôi theo cùng một cách.

Bất kỳ trợ giúp nào trước khi tôi triển khai tính năng hoạt động?

Trả lời

15

cache/miss trả về đối tượng bộ nhớ cache mới mà bạn cần sử dụng cho các hoạt động tiếp theo.

Ex:

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

dụ của bạn trở thành:

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 
+1

Cảm ơn bạn đã trả lời. Việc sử dụng ví dụ ở đây: https://github.com/clojure/core.cache chỉ ra rằng tôi cần phải xử lý trạng thái bản thân mình? Nó không có vẻ ... Tôi cũng nhận thức được tôi có thể làm cho nó nhà nước như bạn ở trên, nhưng tôi có ấn tượng từ các ví dụ và từ các bài kiểm tra mà nó đã được. Tôi sẽ xem lại nguồn và kiểm tra. – lsh

+5

Tôi sẽ đặt điều này xuống một ví dụ tồi trên trang chủ của họ làm lệch đi mong đợi của tôi. Ngay cả khi họ đã xử lý nhà nước nội bộ tôi không chắc chắn tôi thực sự muốn điều đó. – lsh

+0

ah, vài năm và mức độ xanh của tôi khi tôi hỏi câu hỏi này có một chút xấu hổ;) – lsh

Các vấn đề liên quan