स्कैला 2.8 संग्रह ढांचे में, view
और toStream
के बीच क्या अंतर है?दृश्य और स्ट्रीम के बीच क्या अंतर है?
उत्तर
प्रत्येक बार जब उन्हें एक्सेस किया जाता है तो दृश्य तत्वों को फिर से दबाया जाता है। एक धारा तत्वों में उनका मूल्यांकन किया जाता है क्योंकि उनका मूल्यांकन किया जाता है।
उदाहरण के लिए:
val doubled = List(1,2,3,4,5,6,7,8,9,10).view.map(_*2)
println(doubled.mkString(" "))
println(doubled.mkString(" "))
प्रत्येक तत्व के लिए नक्शा फिर से मूल्यांकन होगा दो बार। एक बार पहले println के लिए, और फिर दूसरे के लिए। इसके विपरीत
val doubled = List(1,2,3,4,5,6,7,8,9,10).toStream.map(_*2)
println(doubled.mkString(" "))
println(doubled.mkString(" "))
केवल तत्वों को एक बार दोगुना कर देगा।
एक दृश्य संग्रह बनाने के लिए एक नुस्खा की तरह है। जब आप एक दृश्य के तत्वों के लिए पूछते हैं तो यह हर बार नुस्खा लेता है।
एक धारा सूखी मिटाने वाले कार्डों के समूह के साथ एक लड़के की तरह है। लड़का जानता है कि संग्रह के बाद के तत्वों की गणना कैसे करें। आप उसे संग्रह के अगले तत्व के लिए पूछ सकते हैं और आपको उस पर लिखे गए तत्व के साथ एक कार्ड और कार्ड से अपनी अंगुली से बंधे एक स्ट्रिंग (उसे याद रखने में मदद करने के लिए) देता है। इसके अलावा, इससे पहले कि वह आपको एक कार्ड देता है, वह अपनी उंगली से पहली स्ट्रिंग को खोलता है और इसे नए कार्ड से जोड़ता है।
यदि आप पहले कार्ड के लिए पूछते हैं तो आप पहले कार्ड (यानी धारा के सिर का संदर्भ रखें) पर अंततः कार्ड से बाहर हो सकते हैं (यदि आप अगले तत्व के लिए पूछते हैं, लेकिन यदि आपको आवश्यकता नहीं है पहले तत्वों पर वापस जाएं जो आप स्ट्रिंग को काट सकते हैं और अनियंत्रित कार्ड को वापस आदमी को सौंप सकते हैं और वह उन्हें फिर से उपयोग कर सकते हैं (वे बाद में सूखा-मिटा रहे हैं)। इस प्रकार एक स्ट्रीम मेमोरी से बाहर किए बिना अनंत अनुक्रम का प्रतिनिधित्व कर सकती है।
Geoff के answer लगभग सब कुछ शामिल किया गया है, लेकिन मैं जोड़ने के लिए है कि एक Stream
, एक List
तरह अनुक्रम है, जबकि संग्रह में से हर तरह के (नक्शे, सेट, अनुक्रमित seqs) का नजारा दिखता है चाहता हूँ।
मुझे एक संदेह है। चूंकि कार्य शुद्ध है। संकलक संदर्भित पारदर्शिता या ज्ञापन का उपयोग क्यों नहीं करता है? क्यों दृश्य फिर से recomputing है? –
- 1. जावा में स्ट्रीम और पाठक के बीच क्या अंतर है?
- 2. तालिका सूचकांक और दृश्य अनुक्रमणिका के बीच क्या अंतर है?
- 3. क्या स्ट्रीम के बीच का अंतर "<<" और लिखें
- 4. दृश्य के फ्रेम और दृश्य के बीच अंतर + आईफोन
- 5. स्कैला में इटरेटर और स्ट्रीम के बीच अंतर?
- 6. संदेश उन्मुख प्रोटोकॉल और स्ट्रीम उन्मुख प्रोटोकॉल के बीच अंतर
- 7. # {} $ {} और% {} के बीच क्या अंतर है?
- 8. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 9. $ और $$ के बीच क्या अंतर है?
- 10. के बीच क्या अंतर है:। और: आर !?
- 11. भिन्नता और '-' के बीच क्या अंतर है?
- 12. "$^एन" और "$ +" के बीच क्या अंतर है?
- 13. आईओएस - तालिका दृश्य और तालिका दृश्य नियंत्रक के बीच क्या अंतर है
- 14. एमपी 4 और एमपीईजी के बीच क्या अंतर है?
- 15. के बीच क्या अंतर है?
- 16. अंतर और कहां के बीच क्या अंतर है?
- 17. Html.Partial और Html.Action विधियों के बीच क्या अंतर है?
- 18. ओरेकल स्ट्रीम और चेंज डेटा कैप्चर के बीच क्या अंतर है?
- 19. नेटवर्क प्रोग्रामिंग में स्ट्रीम और डेटाग्राम के बीच क्या अंतर है?
- 20. dealloc और viewdidunload के बीच क्या अंतर है?
- 21. ग्रहण: "कार्य" दृश्य और "कार्य सूची" के बीच अंतर
- 22. प्रदर्शन में दृश्य और सारणी के बीच अंतर
- 23. दृश्य व्यूपोर्ट और लेआउट व्यूपोर्ट के बीच अंतर?
- 24. विज़ुअल सी ++ और सी ++ के बीच क्या अंतर है?
- 25. WPF में DataTemplate और DataContext के बीच क्या अंतर है?
- 26. file_get_contents और fread बीच क्या अंतर है
- 27. क्या बीच का अंतर है :: और ::: स्काला
- 28. "। +" और "। +?" के बीच अंतर
- 29. WPF में सूची दृश्य और डेटाग्रिड के बीच अंतर?
- 30. $ {} और # {} के बीच अंतर क्या हैं?
@huynhj आपको यह सही मिला है। मैं इसे और अधिक स्पष्ट बनाने के लिए उत्तर अपडेट कर सकता हूं –
आप उत्तर को छोड़ सकते हैं। कभी-कभी एक रूपक मदद करता है। इस मामले में मैं इसके द्वारा भ्रमित हो गया। पहली वाक्य में यह सब था। – huynhjl
स्ट्रिंग उदाहरण बहुत भ्रमित है। – ziggystar