एक उदाहरण परिदृश्य क्या होगा जहां एक आईओ! क्लोजर में ब्लॉक का इस्तेमाल किया जाएगा? मुझे इसके उद्देश्य को समझने में परेशानी हो रही है।आईओ का व्यावहारिक उपयोग क्या है! क्लोजर में ब्लॉक?
उत्तर
यह ensuring that code related to IO is not used inside STM transactions. के लिए एसटीएम सिस्टम का हिस्सा है चूंकि क्लोजर लेनदेन का पुन: प्रयास करेगा यदि कोई अन्य थ्रेड लेनदेन चल रहा है, तो विरोधाभासी डेटा करता है, तो उस लेनदेन द्वारा उत्पादित कोई भी आईओ फर्जी होगा क्योंकि यह स्मृति की स्थिति का प्रतिनिधित्व करता है बाहर किया हुआ।
यदि आप [स्रोत] (https://github.com/clojure/clojure/blob/clojure-1.9.0-alpha14/src/clj/clojure/core.clj#L2485) देखते हैं, तो आप देखेंगे लेनदेन प्रगति पर है, तो यह सिर्फ अपवाद फेंकता है, अन्यथा यह शरीर को सामान्य के रूप में निष्पादित करता है। –
यह सहायक लेकिन अमूर्त है। एक उदाहरण परिदृश्य जहां आप वास्तव में इसका उपयोग करेंगे: कहें कि आप कुछ कार्यों के साथ एक पैकेज लिख रहे हैं जो आईओ करते हैं, कुछ उपयोगकर्ता को ज्ञात हैं, कुछ उपयोगकर्ता के लिए अज्ञात हैं। इन सभी में फेंकने और त्रुटि के लिए '(io! & body)' का उपयोग करें, यदि वे असुरक्षित तरीके से उपयोग किए जाते हैं (यानी लेनदेन के भीतर) – jaimedash
पिछले सात वर्षों से क्लोजर में काम कर रहा है, और इसे कभी भी इस्तेमाल नहीं किया है , इसलिए कोई आम उदाहरण दिमाग में नहीं आता है। –
- 1. सिस्टम का व्यावहारिक उपयोग क्या है। लेनदेन?
- 2. संरक्षित विरासत का व्यावहारिक उपयोग क्या है?
- 3. मोनोइड्स का व्यावहारिक उपयोग क्या है?
- 4. गतिशील_कास्ट का व्यावहारिक उपयोग?
- 5. सी # 4.0 में "गतिशील" चर का व्यावहारिक उपयोग क्या है?
- 6. क्लोजर: # '/ (var ...) फॉर्म का उपयोग क्या है?
- 7. `stackalloc` कीवर्ड का व्यावहारिक उपयोग
- 8. जावा में वाइल्डकार्ड जेनरिक का व्यावहारिक उपयोग
- 9. सीखना कार्यात्मक/क्लोजर प्रोग्रामिंग - व्यावहारिक अभ्यास?
- 10. अभिव्यक्ति पेड़ों का व्यावहारिक उपयोग
- 11. इंटरफ़ेस ईवेंट का व्यावहारिक उपयोग
- 12. व्यावहारिक उपयोग
- 13. प्रेत संदर्भों का व्यावहारिक उपयोग क्या है - जावा?
- 14. रीयल में @ इग्नोर का व्यावहारिक उपयोग?
- 15. viewPager.setOffscreenPageLimit (3) का व्यावहारिक प्रभाव क्या है ;?
- 16. क्या सॉकेट आईओ में डिस्क आईओ शामिल है?
- 17. क्लोजर के डायनामिक वर्र्स और बाइंडिंग का व्यावहारिक उद्देश्य क्या है?
- 18. क्लोजर के बाध्यकारी रूप में अंडरस्कोर का उपयोग क्या है?
- 19. आप बड़े क्लोजर प्रोग्राम में व्यावहारिक तरीके से core.logic का उपयोग कैसे करते हैं?
- 20. क्लोजर में "% और" का क्या अर्थ है?
- 21. क्लोजर में #^ऑपरेटर का क्या अर्थ है?
- 22. क्लोजर में ~ 'या' ~ का उद्देश्य क्या है?
- 23. क्लोजर में क्या सुधार है?
- 24. प्रिंट() हमेशा 1 देता है, क्या कोई व्यावहारिक उपयोग है?
- 25. ब्लॉक का उपयोग कर SIGSEGV का कारण क्या है?
- 26. क्या इकाई ढांचे 4 में पदानुक्रमित डेटाटाइप का उपयोग करने का कोई व्यावहारिक तरीका है?
- 27. मुलायम संदर्भों का उपयोग करने के "व्यावहारिक परिणाम" क्या हैं?
- 28. संरक्षित कन्स्ट्रक्टर के व्यावहारिक उपयोग क्या हैं?
- 29. HttpSessionBindingListener और HttpSessionAttributeListener का व्यावहारिक उपयोग
- 30. शुद्ध कार्यात्मक प्रोग्रामिंग में आईओ का उपयोग करने के लिए मोनैड का विकल्प क्या है?
इसका कभी भी उपयोग नहीं किया गया, लेकिन ऐसा लगता है कि एक लेनदेन में एक फ़ंक्शन/कोड का उपयोग नहीं किया जाता है। – Carcigenicate
दिलचस्प सवाल ... मैंने मेलिंग सूची की त्वरित खोज की, [एक थ्रेड] (https://groups.google.com/d/msg/clojure/ZZP93tVmot4/DoDBAlDrHmYJ) और [अन्य] (https: // समूह .google.com/d/msg/clojure/TAhNp7rb2Go/Kij920UDKbwJ), और विशेष रूप से [जिस धागे में इसे पेश किया गया था] (https://groups.google.com/d/msg/clojure/JRRegOOwohE/3gWZjmWClpUJ) (और [प्रतिबद्ध] (https://github.com/clojure/clojure/commit/c5e8c6f06292fab26d29cb951d8400394e0f8258))। – glts
धन्यवाद @glts बहुत उपयोगी लिंक। मुझे लगता है कि निम्नलिखित दो उत्तरों ने इसे संक्षेप में सारांशित किया है: "मुझे लगता है कि यह स्पष्ट कोड के साथ कोड के चारों ओर लपेटने के लिए अन्य कोड रोकता है। यह कहने का यह घोषणात्मक तरीका है: मैं आईओ कर रहा हूं! मुझे एक डॉसिंक के अंदर उपयोग न करें।" और "बिंदु साइड-इफेक्टिंग कोड को चिह्नित करना है ताकि आप गलती से लेनदेन में इसका उपयोग न कर सकें।" – Aspasia