Thursday 15 May 2014

scala - Why is the iterator evaluated when creating a new Iterable from it? -


<पूर्व> & gt; स्केला & gt; Val myI = नया इटेरेटेबल [इंट] {डीईफ़ इटरेटर = इटरेटर.continually (1)} & gt; Java.lang.OutOfMemoryError: जावा हीप स्पेस & gt; पर java.util.Arrays.copyOf (Arrays.java:2882) & gt; & LT; कटाव & gt;

अब, यह अपेक्षित व्यवहार है? मुझे यह कुछ अजीब लगता है और यह मेरे रास्ते में हो जाता है।

यह केवल REPL की कोशिश कर रहा है सहायक हो - यह आपका नया अटेरएबल को प्रिंट करने का प्रयास करता है, जब आप एक मूल्य वापस करते हैं तो क्या करता है आप या तो कुछ कंटेनर में छड़ी कर सकते हैं जो इसकी सामग्री को मुद्रित नहीं करता है या toString को ओवरराइड कर सकता है।

  scala & gt; Val myI = नया इटेरेटेबल [इंट] {डीईएफ़ इटरेटर = इटरेटर। कॉन्टिनली (1); | Override def toString = "myI"} myI: Iterable [Int] = myI    

No comments:

Post a Comment