से आइटम का उपभोग करें मैं Iterator
पर विधि take
के व्यवहार के बारे में उलझन में हूं। ऐसा लगता है कि यह वस्तुओं का उपभोग नहीं करता है।स्कैला Iterator
scala> Iterator(1,2,3)
res0: Iterator[Int] = non-empty iterator
scala> res0 take 2 toArray
res1: Array[Int] = Array(1, 2)
scala> res0.next
res2: Int = 1
जाहिर कदम 2 दो आइटम की खपत है, लेकिन चरण 3 में Iterator
पहला आइटम पर अभी भी है: यहाँ एक उदाहरण है। कार्यान्वयन को देखते हुए, मैं किसी भी प्रकार की प्रतिलिपि या बफरिंग नहीं देख सकता, केवल एक नया Iterator
अंतर्निहित एक प्रतिनिधि प्रतिनिधि। यह कैसे संभव हो सकता है? मैं वास्तव में n आइटमों का उपभोग करने के लिए कैसे प्रबंधित कर सकता हूं?
धन्यवाद संक्षिप्त नाम, मैं बिंदु देखता हूं। मुझे 'स्ट्रीम' को छोड़ने के लिए "वर्तमान आइटम सूचक" की तरह कुछ की कमी थी (वैसे, शायद जावा प्रभाव के कारण, किसी चीज़ को किसी तथाकथित चीज़ में उम्मीद हो सकती है)। अब मैं देखता हूं कि मुझे 'ड्रॉप पॉइंट' के अनुक्रम के साथ "वर्तमान सूचक" मिल सकता है और 'हेड' को देख सकता है। मैं दुबारा कोशिश करूँगा। – jglatre