2012-08-14 29 views
8

का उपयोग करके काम नहीं करता है मैंने अभी अपनी परियोजना में clojure.core.cache 0.6.1 जोड़ा है, एक लीन डीपीएस किया है, यहां बहुत छोटा और स्पष्ट उदाहरण दिया गया है: https://github.com/clojure/core.cache और यह सिर्फ फ्लैट बाहर काम नहीं करता है।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 

क्या गलत यहाँ चल रहा है? क्या मैं पूरी तरह से इस बिंदु को याद कर रहा हूं? मैंने इसे अन्य कैश बैकएंड के साथ एक ही परिणाम के साथ करने की कोशिश की है। इसे अलग-अलग चाबियों, विभिन्न मानों, अलग-अलग नामस्थान, अलग-अलग उपनामों - नाडा के साथ आज़माएं। परीक्षण चलाने से मुझे यह मिलता है:

$ lein test clojure.core.cache.tests 

Testing clojure.core.cache.tests 

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

जो यह सब और रहस्यमय बनाता है। मैंने परीक्षणों को देखा, और जब वे: कैश बैकएंड आयात करते हैं और उन्हें जावा रास्ता (मिस (बेसिक कैश। {}) ...) को तुरंत चालू करते हैं, जिसे मैंने भी कोशिश की, वह भी मेरे लिए बिल्कुल उसी तरह विफल रहता है।

इससे पहले कि मैं केवल एक को लागू करने के लिए कोई मदद करता हूं?

उत्तर

15

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

उत्तर के लिए धन्यवाद। क्या उदाहरण यहां उपयोग करता है: https://github.com/clojure/core.cache इंगित करता है कि मुझे खुद को राज्य को संभालने की आवश्यकता है? ऐसा प्रतीत नहीं होता है ... मुझे अच्छी तरह से पता है कि मैं इसे ऊपर की तरह राज्य जैसा बना सकता हूं, लेकिन मुझे उदाहरणों और परीक्षणों से छाप मिली है जो पहले से ही थी। मैं फिर से स्रोत और परीक्षण देखेंगे। – lsh

+5

मैं इसे अपने सामने वाले पृष्ठ पर एक बुरी मिसाल पर डाल रहा हूं जो मेरी अपेक्षाओं को कम करता है। भले ही वे आंतरिक रूप से राज्य को संभालने में सक्षम थे, मुझे यकीन नहीं है कि मैं वास्तव में इसे चाहता हूं। – lsh

+0

आह, जब मैंने इस प्रश्न से पूछा तो कई वर्षों और मेरी हरे रंग की डिग्री थोड़ा शर्मनाक है;) – lsh