Iterator.continually vs while(..) in Scala -
def कार्य () {Thread.sleep (60 * 1000) // update lru cache हर मिनट // do नया थ्रेड {ओवरराइड डेफ रन = जबकि (सच) कार्य ()}। बनाम P>
Iterator.continually (कार्य ())। DropWhile (_ = & gt; सच) सटीक एक ही व्यवहार है क्या वे हुड के समान भी हैं?
इटरेटर.continually उपयोगी है एक इट्टरेटर प्राप्त करने के लिए कि आप एक छद्म संग्रह की तरह प्रयोग कर सकते हैं, गैर-साइड प्रभाव परिणाम के लिए यहां आप एक println कर रहे हैं, इसलिए लगातार एक अच्छी चीनी है, लेकिन यह वास्तव में आपको कुछ नहीं देता। यदि आपके पास ऐसा कुछ होता है: def कार्य () {थ्रेड.sleep (60 * 1000) // अपडेट लारु कैश हर मिनट // यहां कुछ गणना-गहन कार्य करना है जो कि लारु कैश को पॉप्युलेट करने के लिए " एलआरयू अद्यतन! " } एक साइड इफेक्ट लागू करने के लिए, आप अभी धागा का उपयोग कर सकते हैं, लेकिन आप अधिक (अधिक जटिल कोड के बिना) करने में सक्षम नहीं होंगे।
< Code> new thread {override def run = while (true) println (task ())} .start यदि आप आउटपुट को बदलना चाहते हैं, या इसे किसी अन्य कॉल में धक्का, या लिखें यह, आदि। फिर एक इटरेटर एक अच्छा अमूर्त होगा:
Iterator.continually (कार्य ())। नक्शा (x = & gt; "$ x यै!")। ले लो (100 ) लेकिन मुझे लगता है कि वास्तव में यह नहीं है कि आप अपने उदाहरण से क्या करना चाहते हैं।
Comments
Post a Comment