स्कैला में आलसी var बनाते हैं, स्काला को आलसी vars, केवल आलसी vals बनाने की अनुमति नहीं है। यह मतलब की बात है।स्कैला
लेकिन मैंने उपयोग मामले पर टक्कर लगी है, जहां मैं समान क्षमता रखना चाहता हूं। मुझे एक आलसी परिवर्तनीय धारक की जरूरत है। इसे एक मान असाइन किया जा सकता है जिसे समय लेने वाली एल्गोरिदम द्वारा गणना की जानी चाहिए। लेकिन बाद में इसे किसी अन्य मूल्य पर फिर से सौंप दिया जा सकता है और मैं पहले मूल्य गणना को कॉल नहीं करना चाहता हूं।
उदाहरण मानते हुए वहाँ कुछ जादू वर परिभाषा
lazy var value : Int = _
val calc1 :() => Int = ... // some calculation
val calc2 :() => Int = ... // other calculation
value = calc1
value = calc2
val result : Int = value + 1
कोड का यह टुकड़ा केवल calc2() बुलाना चाहिए, calc1 नहीं
मेरे पास एक सुझाव है कि कैसे मैं अंतर्निहित रूपांतरण और के साथ इस कंटेनर में लिख सकते हैं है और विशेष कंटेनर वर्ग। मैं कलाकृतियां हूँ अगर कोई एम्बेडेड स्केला विशेषता यह है कि मुझे अनावश्यक कोड लिखने
दूसरा विकल्प – paradigmatic
के लिए +1 यह एक सही समाधान के बाद से यह एक आलसी का "कैशिंग" प्रकृति पर कब्जा नहीं है नहीं है। अर्थात। हर बार जब आप lv.value का मूल्यांकन करते हैं तो फ़ंक्शन को फिर से निष्पादित किया जाएगा (इस उदाहरण में यह बार-बार प्रिंट करेगा)। –