क्लोजर ऑब्जेक्टिव सी प्रोटोकॉल से प्रभावित था? यदि नहीं तो वे कैसे अंतर करते हैं?क्लोजर के प्रोटोकॉल प्रभावित होते हैं?
उत्तर
आप इन लेखों और लिंक दिलचस्प लग सकते हैं:
- http://kirindave.tumblr.com/post/658770511/monkey-patching-gorilla-engineering-protocols-in - प्रोटोकॉल और अन्य के बारे में अधिक रिच - प्रोटोकॉल
- http://groups.google.com/group/clojure/msg/330c230e8dc857a9 के लिए रिच हिक्की प्रेरणा पर - पर ऑब्जेक्टिव-सी छूता थोड़ा
- http://www.assembla.com/wiki/show/clojure/Protocols ऐसी चीजें
वे समान नाम साझा करते हैं और अवधारणाएं संबंधित होती हैं - हालांकि क्लोजर प्रोटोकॉल अधिक सामान्य और "अभिव्यक्ति समस्या" को हल करने के लिए डिज़ाइन किए गए हैं। यह video is very interesting to watch।
उद्देश्य सी प्रोटोकॉल अधिक जावा/सी # इंटरफेस तरह हैं - वे तरीकों कि एक ठोस वर्ग को लागू कर सकते हैं का एक सेट निर्दिष्ट। हालांकि आपको इन विधियों को कंक्रीट क्लास में प्रदान करना है, जो आमतौर पर अभ्यास में है कि आप जिस वर्ग को विस्तारित कर रहे हैं उसके लिए स्रोत कोड को नियंत्रित करते हैं।
Clojure प्रोटोकॉल आप कार्यों कि एक बहुरूपी फैशन में किसी भी वर्ग को संभालने के लिए विस्तार का एक सेट को परिभाषित अनुमति देते हैं, और आप कार्यान्वयन अलग से प्रदान कर सकते हैं, भले ही आप वर्ग आप बढ़ा रहे हैं पर नियंत्रण नहीं है।
विशेष मूल्य नहीं के बराबर (यानी एक शून्य मान), उदाहरण के लिए java.lang.String वर्ग के लिए एक Clojure प्रोटोकॉल का विस्तार (आप निश्चित रूप से नियंत्रित नहीं करते हैं जो!) और यह भी का एक उदाहरण:
;; define a protocol with one function
(defprotocol FooProtocol
(foo [this]))
;; extend the protocol to String and nil
(extend-protocol FooProtocol
java.lang.String
(foo [some-string] (str "Called foo on String: " some-string))
nil
(foo [_] "Called foo on nil value"))
(foo "hello")
=> "Called foo on String: hello"
(foo nil)
=> "Called foo on nil value"
- 1. मॉकिंग क्लोजर प्रोटोकॉल
- 2. आप किसी अन्य प्रोटोकॉल पर क्लोजर प्रोटोकॉल कैसे बढ़ा सकते हैं?
- 3. क्लोजर में मोनॉयड प्रोटोकॉल कैसे लिखें?
- 4. निम्नलिखित क्लोजर प्रोटोकॉल में क्या गलत है?
- 5. मिनीकेरेन नाम हमेशा 'ओ` के साथ क्यों समाप्त होते हैं?
- 6. क्लोजर
- 7. क्लोजर
- 8. क्लोजर
- 9. क्लोजर
- 10. कैसे करें: HTML उत्पन्न करने के लिए क्लोजर टेम्पलेट जिसमें तत्व के विशेषता मान में घुंघराले ब्रेसिज़ होते हैं
- 11. क्लोजर मेटाडेटा के कुछ उपयोग क्या हैं?
- 12. जीएचसी के मामलों में पहचान के मामले क्या होते हैं?
- 13. पोस्टग्रेज़ एकाधिक में शामिल होते हैं
- 14. memory_order_seq_cst और memory_order_acq_rel कैसे भिन्न होते हैं?
- 15. डीएओ पैटर्न - लेनदेन कहां फिट होते हैं?
- 16. डेटा बाइंडिंग कब लागू होते हैं?
- 17. NSUserDefaults कितनी बार सिंक्रनाइज़ होते हैं?
- 18. श्वार्टज़ियन परिवर्तन कब उपयोगी होते हैं?
- 19. @InjectView फ़ील्ड इंजेक्शन कब होते हैं?
- 20. ओपन सोर्स प्रोजेक्ट्स कैसे प्रबंधित होते हैं
- 21. प्रोटोकॉल
- 22. रेल_फिल्टर से पहले कैसे लागू होते हैं?
- 23. क्या .NET फ़ाइनलाइज़र हमेशा निष्पादित होते हैं?
- 24. डेमॉन धागे कब उपयोगी होते हैं?
- 25. जावास्क्रिप्ट क्लोजर - नकारात्मक क्या हैं?
- 26. पैकेज ऑब्जेक्ट्स कब शुरू होते हैं?
- 27. काउंटर हर बार शुरू होते हैं?
- 28. क्या रैवल हमेशा स्थिर होते हैं?
- 29. टेस्ट सफल होते हैं, फिर भी ट्रेसबैक
- 30. परिवर्तनीय नाम _ माध्य से शुरू होते हैं?
आपके लिंक के लिए धन्यवाद। –